我有一个功能来检查结果是否在服务器上。
var d = document;
var dl = d.location;
var w = window;
var wt = w.setTimeout;
var X = XMLHttpRequest;
function _checkreload() {
var x = new X();
x.open('GET', '?test=results');
x.onreadystatechange = function (c) {
if (x.readyState === 4) {
if (x.status == 205) {
dl.reload(true);
} else {
wt(_checkreload, 200);
}
}
};
x.send();
};
_checkreload();
有时由于未知原因取消重新加载:
问题
如何找出重新加载被取消的原因?
请求的详细信息
由于请求已取消,因此详细信息 Pane 中没有信息。即使某些字节已发送到服务器(甚至从服务器响应回浏览器),chrome 也不会显示它们。
最佳答案
尝试在 try {} catch
函数中添加 _checkReload
。这将帮助您了解错误是什么,如果它在 JS 方面。
var d = document;
var dl = d.location;
var w = window;
var wt = w.setTimeout;
var X = XMLHttpRequest;
function _checkreload() {
try { // Add a try here...
var x = new X();
x.open('GET', '?test=results');
x.onreadystatechange = function (c) {
if (x.readyState === 4) {
if (x.status == 205) {
dl.reload(true);
} else {
wt(_checkreload, 200);
}
}
};
x.send();
} catch (err) { console.log(err); } // ... and a catch there.
};
_checkreload();
当您的函数重新加载 HTML 页面时,我建议您使用 chrome 开发人员工具上的 enable the Preserve log feature。这在调试时会有很大帮助。
最后但并非最不重要的一点,请注意,如果您从 localhost 运行此代码,您可能会遇到 CORS 错误。
关于javascript - document.location.reload(true) 在 chrome 中取消,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53903821/