我使用API在页面上显示一些数据。所以我创建了一个XMLHttpRequest对象,设置了URL并发送请求以获取要显示的数据。 现在,当我加载页面时,它会显示占位符文本一秒钟,然后才能获得实际数据。我认为还有延迟,因为我还将JSON转换为对象然后再显示。
有没有办法解决这个问题。我想我可能无法减少API提取造成的延迟。那么,在获取数据之前,我可以让我的页面不加载吗?
request.onload = function() {
var obj;
obj = JSON.parse(request.response);
var str = "stock";
for(var i = 0; i < 10; ++i)
{
//Here I set the innderHTML of a list with the API data.
}
};
答案 0 :(得分:0)
正常行为之一是设置加载程序并正确设置其显示状态。看看下面的问题。 Show loading image while $.ajax is performed
答案 1 :(得分:0)
只需使用相应的全局事件处理程序:onreadystatechange
var xhr = new XMLHttpRequest(),
method = "GET",
url = "https://developer.mozilla.org/";
xhr.open(method, url, true);
xhr.onreadystatechange = function () {
if(xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {
console.log(xhr.responseText);
// your code here
}
};
xhr.send();
https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/onreadystatechange