测量ajax加载时间

d-_*_*_-b 5 javascript ajax jquery

我有$ .ajax请求并保存开始时间和结束时间(使用new Date().getMilliseconds()).我看到一个奇怪的地方发生,有时我减去startTimeendTime,并得到一个负数.

(function(){
    var startTime = new Date().getMilliseconds();
    $.ajax({
        url:"/url.php",
        data: someObject,
        method: "POST",
        complete:function(r){
            var endTime = new Date().getMilliseconds();
            console.log(endTime - startTime); // sometimes negative?!
        }
    });
})();
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下吗?我确信除了时空连续体中的裂缝之外,还有一个合乎逻辑的解释.

(如果有更好的方法来衡量这一点,那也值得赞赏!)

小智 8

.getMilliseconds返回创建对象时的毫秒部分Date.因此,在50%的比较中,该部分将高于或低于任何其他Date对象的部分.

你想要的是new Date().getTime(),自1970年Unix时代开始以来,它返回绝对毫秒数.


Cam*_*kew 5

这通常是负的(大约一半的时间),因为这不是自纪元(1970年1月1日)以来的毫秒数.这相当于获得当前日期时间的毫秒数.因此,如果自上一秒开始已经过了400毫秒,那么你将获得400 ...如果自上一秒开始已经过了800毫秒,你将获得800.

您正在寻找的功能是:new Date().getTime()