javascript - document.location.reload(true) 在 chrome 中取消

标签 javascript google-chrome http google-chrome-devtools

我有一个功能来检查结果是否在服务器上。

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();

有时由于未知原因取消重新加载:

enter image description here

问题

如何找出重新加载被取消的原因?

请求的详细信息

由于请求被取消,因此详细信息 Pane 中没有任何信息。即使一些字节已经发送到服务器(或者甚至从服务器响应回浏览器),chrome 也不会显示它们。

最佳答案

尝试在 _checkReload 函数中添加一个 try {} catch。如果是在 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 页面时,我建议您使用 enable the Preserve log feature在 chrome 开发者工具上。这在调试时会有很大帮助。

最后但同样重要的是,请注意,如果您从本地主机运行此代码,您可能会遇到 CORS错误。

关于javascript - document.location.reload(true) 在 chrome 中取消,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53903821/

相关文章:

javascript - 确定 Javascript 在哪里被调用?

javascript - 正则表达式匹配有效的整数或小数(可以是正数或负数)

c# - 如何使用 Selenium WebDriver 将缩放重置为 Chrome 上的默认值?

python - 来自请求 Python 库的 HTTP 请求中缺少主机 header

sockets - 如何格式化 HTTP 响应

c# - 如何连接到 HTTPS 代理?

xss - 内容未出现在正文中

javascript - 在间隔函数中 react setAttribute

javascript - PDF.js 会随机导致 Google Chrome 选项卡崩溃

node.js - Selenium/WebdriverIO Chrome headless ?