通过这种方式,我可以测量我的ajax调用的处理时间
var ajaxTime= new Date().getTime();
$.ajax({
type: "POST",
url: "some.php",
}).done(function () {
var totalTime = new Date().getTime()-ajaxTime;
// Here I want to get the how long it took to load some.php and use it further
});
但是,如果我想在同一页面获得多个ajax调用的处理时间,我该怎么办?
我的意思是这样的:
var i;
var j = 5;
for (i = 0; i < j; i++) {
var ajaxTime= new Date().getTime();
$.ajax({
type: "POST",
url: "some.php",
}).done(function () {
var totalTime = new Date().getTime()-ajaxTime;
// Here I want to get the how long it took to load some.php and use it further
});
}
我需要知道每次通话的响应时间
答案 0 :(得分:1)
你的问题是no block scope in JavaScript,所以ajaxTime
在每次循环迭代时都不会被重新声明(它被设置为每次迭代的当前时间)。您可以将$.ajax
代码重构为函数或使用闭包,以便为每个请求使用新的ajaxTime
变量:
var i;
for (i = 0; i < 5; i++) {
makeRequest(i);
}
function makeRequest(i) {
var ajaxTime = new Date().getTime();
$.ajax({
url: 'some.php',
type: 'POST'
}).done(function () {
var total = new Date().getTime() - ajaxTime;
console.log('Elapsed time: ' + total);
});
}