我正在使用这个简单的方法加载位于我服务器上的.txt文件:
function getFileFromServer(url, doneCallback)
{
console.time("getFileFromServer");
var xhr;
xhr = new XMLHttpRequest();
xhr.onreadystatechange = handleStateChange;
xhr.open("GET", url, true);
xhr.send();
function handleStateChange() {
if (xhr.readyState === 4) {
doneCallback(xhr.status == 200 ? xhr.responseText : null);
}
}
console.timeEnd("getFileFromServer");
}
我以这种简单的方式使用它,因此对于这篇文章:Reading a txt file from Server, writing it to website
function loadFile( url ) {
console.time("loadFile");
getFileFromServer(url, function(text) {
if (text === null) {
console.log("error-loading-file");
}
else {
console.timeEnd("loadFile");
doStuff(text);
}
});
正如您所看到的,我已将控制台时间用于跟踪时间。这是浏览器控制台的答案:
getFileFromServer:1.744ms
loadFile:18114.871ms
我不是一个javascript专家,我唯一可以解释时间差异的是参数传递(C ++中的值vs引用)。 有人能解释我这个时间差异吗?
答案 0 :(得分:1)
getFileFromServer
完成得非常快的原因是没有真正的处理。该函数不会等到请求从服务器返回,但只会注册回调函数。这意味着发送请求需要1.744毫秒,仅此而已。
loadFile
函数用于衡量发送请求和实际获得响应之间的时间。差别就是这样。