Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查是否正在进行异步上载_Javascript_Html_Xmlhttprequest - Fatal编程技术网

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

Javascript 检查是否正在进行异步上载,javascript,html,xmlhttprequest,Javascript,Html,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 != 'unde

我有一个使用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的音频元素不同。我还在我正在工作的网站上使用html5音频,我测试
音频
是否以与成功相同的方式定义

如果您谈论的是在上载过程中保持打开状态的同一页面,那么您可以使用一些状态(例如您自己的变量)来跟踪上载何时开始以及何时完成,然后您可以随时检查该状态,以了解上载是否仍在进行中


如果您谈论的是用户在同一上传URL上打开一个新的浏览器窗口,但启动一个新的上传页面,并且您希望在该新页面中反映其他浏览器窗口中发生的情况,那么这并不是那么简单,您可能需要使用一些窗口间通信或一些跨窗口状态(如本地存储或cookie)


对于更具体的建议,您必须解释“用户导航回上传页面”的含义。如果进行上传的页面曾经被关闭,那么无论如何上传都会停止,对吗?

我想我应该解释一下html5历史api的功能。基本上我需要这样做,因为用户可以在不刷新整页的情况下更改页面,因此
changePage