Javascript Chrome ajax请求被挂起
如果我一个接一个地提出大约8个请求,它们的加载很好,但之后的任何请求都会说“待定” 以下是我的基本html模板:Javascript Chrome ajax请求被挂起,javascript,ajax,google-chrome,Javascript,Ajax,Google Chrome,如果我一个接一个地提出大约8个请求,它们的加载很好,但之后的任何请求都会说“待定” 以下是我的基本html模板: <!DOCTYPE html> <html> <head> <meta charset='utf-8'> <title>Editing Quiz</title> <script src="../assets/js/lib.js"></script> <
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<title>Editing Quiz</title>
<script src="../assets/js/lib.js"></script>
</head>
<body>
<div>
<a href="#/test">test</a>
<a href="#/demos/QuizDemo">QuizDemo</a>
</div>
<div id="container">
</div>
</body>
</html>
如果我一个接一个地快速单击“test”和“QuizDemo”(或者在每次单击之间等待几秒钟),则在8个请求之后,它们停止加载并进入挂起状态。他们永远也无法恢复,之后提出的任何请求也会暂停
这在firefox中非常有效,所以我不知道出了什么问题。问题是我在页面上有视频元素。Chrome显然开始自动加载视频,但会将视频分块加载,因此在你观看整个视频之前,视频永远不会结束。因此,当我加载页面的新数据时,视频请求仍然处于不确定状态
为了解决这个问题,我制作了一个全局列表
媒体
,每当我创建一个加载流的元素(音频
,视频
)时,我都会将它附加到列表中。然后,每当我重新加载页面时,我只需迭代media
并调用media[I]。删除属性(“src”)
,然后调用media[I]。load()
,这将尝试重新加载流。重新加载流会自动中止它以前的所有请求,如果src不存在,加载将以静默方式失败。问题在于我在页面上有视频元素。Chrome显然开始自动加载视频,但会将视频分块加载,因此在你观看整个视频之前,视频永远不会结束。因此,当我加载页面的新数据时,视频请求仍然处于不确定状态
为了解决这个问题,我制作了一个全局列表媒体
,每当我创建一个加载流的元素(音频
,视频
)时,我都会将它附加到列表中。然后,每当我重新加载页面时,我只需迭代media
并调用media[I]。删除属性(“src”)
,然后调用media[I]。load()
,这将尝试重新加载流。重新加载流会自动中止其以前的所有请求,如果src不存在,加载将以静默方式失败
function loadPage(e) {
document.getElementById("container").innerHTML = "";
var baseFilename = location.hash.substr(1);
var url = "/LiquiZ2" + baseFilename + "_ajax.jsp"; // name of dynamic file to run
var json = new XMLHttpRequest();
json.onreadystatechange=function() {
if (json.readyState!==4 || json.status!==200)
return;
processAJAX(json.responseText);
}
json.open("GET", url, true);
json.send();
}
window.onload = loadPage;
window.onhashchange = loadPage;