我有一个QML页面(Qt Quick 2),它向外部服务器发出XHR请求。现在服务器正在我的本地机器上运行,第一次发出此请求大约需要1.5秒。每个后续请求都在100ms以下。
当我用浏览器发出同样的请求时,每次都会在10毫秒内得到响应,所以我知道问题不存在。
这是违规代码。有什么想法吗?
function login(key) {
var xhr = new XMLHttpRequest();
var params = "Fob_num=" + key;
xhr.open("POST","http://localhost:9000/customer_login",true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.setRequestHeader("Content-length", params.length);
xhr.setRequestHeader("Connection", "close");
xhr.onreadystatechange = function() {
if ( xhr.readyState == xhr.DONE) {
if ( xhr.status == 200) {
handleResponse(xhr.responseText);
} else {
console.log("error with login--status: " + xhr.status)
displayErr("Oops, something's wrong. Please try again.")
}
}
}
xhr.send(params);
}
问题不在于handleResponse()函数,我已经尝试用console.log("response")替换它,但它仍然需要同样长的时间。我还尝试用我的ip替换localhost。
您可能希望在使用Loader
异步加载的伪QML组件中创建一个伪XMLHttpRequest
实例。只是个主意。也许创建第一个XMLHttpRequest
实例需要很长时间?