Google chrome Chrome扩展-异步XHR?
我正在寻找通过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) {
$(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);帮助…:-)