检查异步上载是否正在进行中

时间:2013-08-21 22:26:07

标签: javascript html5 xmlhttprequest

我有一个使用XMLHttpRequests的上传脚本,我也使用了html5历史api。我需要检查上传是否正在进行中,以便在用户导航回上传页面时,将显示上传进度。

这是我尝试过的;

$(document).on("changePage", function(){ 
    //changePage is the trigger I have created that is fired whenever the page is changed
    if(typeof xhr != 'undefined'){
        if(xhr.upload.onprogress){
            uploading_tools();
        } 
    }
});

通过一些测试,我意识到每当您离开上传页面时xhr都会变得不确定。这与html5 audio元素不同。我还在我正在处理的网站上使用html5音频,并测试audio是否以相同的方式成功定义。

1 个答案:

答案 0 :(得分:0)

如果您正在谈论在上传期间保持打开的同一页面,那么您可以使用某种状态(例如您自己的变量)来跟踪上传开始时间和完成时间,然后您可以检查该状态任何时候你想知道上传是否仍在进行。

如果你在谈论用户在同一个上传网页上打开一个新的浏览器窗口但是开始一个新的上传页面并且你想要在那个新页面中反映出在其他一些浏览器窗口中发生的事情,那么这不是很简单,你可能需要使用一些interwindow通信或一些跨窗口状态(如本地存储或cookie)。

有关更具体的建议,您必须通过“用户导航回上传页面”来解释您的意思。如果进行上传的页面被关闭,无论如何上传都会停止,对吗?