Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.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
Google chrome Chrome扩展-异步XHR?_Google Chrome_Google Chrome Extension_Xmlhttprequest - Fatal编程技术网

Google chrome Chrome扩展-异步XHR?

Google chrome Chrome扩展-异步XHR?,google-chrome,google-chrome-extension,xmlhttprequest,Google Chrome,Google Chrome Extension,Xmlhttprequest,我正在寻找通过XHR发送异步请求的任何方法: 实际上,我正在尝试在页面加载后发送请求: $(document).ready(function() { var xhr = new XMLHttpRequest(); xhr.open("GET", "https://myserver.com/", true); xhr.onreadystatechange = function() { if (xhr.readyState == 4) {

我正在寻找通过XHR发送异步请求的任何方法:

实际上,我正在尝试在页面加载后发送请求:

$(document).ready(function() {
    var xhr = new XMLHttpRequest();
    xhr.open("GET", "https://myserver.com/", true);
    xhr.onreadystatechange = function() {
        if (xhr.readyState == 4) {
            // Get logged user
            username = $("div.user", xhr.responseText).text()
                    .replace(/.*\(([a-z0-9]*)\).*/, "$1");
        }
    };
});
但是用户体验确实不是很好,它会冻结,直到从myserver.com获取数据,然后显示数据


有没有办法先显示弹出窗口,然后向用户显示一些加载文本/图像,然后开始推送请求?

如果您已经在使用jquery,为什么不使用方便的jquery ajax包装器:

$(document).ready(function() {
    getData();
});

function getData() {
    $.ajax({
       url: "https://myserver.com/",
       type: "GET",
       dataType: "text",
       success: function(data) {
        username = $("div.user", data.replace(/.*\(([a-z0-9]*)\).*/, "$1");
       }
    });
}
不要将脚本放在
中,而是放在
的末尾。如果页面仍然冻结,请尝试使用
setTimeout

$(document).ready(function() {
    setTimeout(getData, 0);
});

我不知道为什么Chrome会这样,但是setTimeout(getData,0);帮助…:-)