jQuery ajax时间没有专门计时

时间:2013-12-10 04:04:10

标签: jquery ajax time

我知道我可以使用类似

之类的东西计算$ .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调用的加载时间,而不会将Date()添加到特定的ajax调用。我有办法做到吗?

由于

2 个答案:

答案 0 :(得分:0)

您是否只是出于调试目的而这样做?如果是这样,Fiddler是一个很好的工具,可以准确显示ajax调用的运行时间

答案 1 :(得分:0)

您可以使用全局事件来执行此操作,使用.ajaxSend().ajaxComplete()处理程序

$(document).ajaxSend(function (event, jqXhr, opts) {
    jqXhr._start = new Date().getTime();
});
$(document).ajaxComplete(function (event, jqXhr, opts) {
    var end = new Date().getTime();
    console.log('Time taken:', opts.url, end - jqXhr._start)
});

演示:Fiddle

或者您可以使用任何网络监控工具,例如浏览器开发人员工具中的网络选项卡。