Javascript ajax发送和接收之间的时间返回负值

Javascript ajax发送和接收之间的时间返回负值,javascript,jquery,ajax,Javascript,Jquery,Ajax,我试图测量发送和接收ajax请求之间的时间,但它通常返回负值。 有人能解释这种奇怪的行为吗 var before = 0; var after = 0; $.ajax({ url: 'data.php', type: 'GET', beforeSend: function () { before = new Date().getMilliseconds(); }, success: function (data, textStatus, x

我试图测量发送和接收ajax请求之间的时间,但它通常返回负值。
有人能解释这种奇怪的行为吗

var before = 0;
var after = 0;
$.ajax({
    url: 'data.php',
    type: 'GET',
    beforeSend: function () {
        before = new Date().getMilliseconds();
    },
    success: function (data, textStatus, xhr) {
        after = new Date().getMilliseconds();
        console.log(after - before);
    },
});
将其更改为:

beforeSend: function () {
    before = +new Date();
},
success: function (data, textStatus, xhr) {
    console.log(new Date() - before);
},
当前实现的问题是
Date.getmillizes()
返回给定日期时间的千秒部分,即介于0和999[]之间的数字。但实际上,您需要比较给定日期时间的“毫秒统计”——这就是[]的
Date.valueOf()
(或
Date.getTime()
)的含义:

valueOf
方法将日期对象的原始值作为 number数据类型,自午夜01起的毫秒数 协调世界时1970年1月

但是,您可以忽略这些调用,因为
-
操作首先尝试将其操作数强制转换为基本体(如果它们是对象)。所以这个

console.log(new Date() - before);
。。。将被处理为与

console.log(new Date().valueOf() - before);
由于将起始点作为完整日期对象存储在之前的
中没有什么意义,因此它被转换为一个基本值-使用
+
(一元加号)运算符。

将其更改为:

beforeSend: function () {
    before = +new Date();
},
success: function (data, textStatus, xhr) {
    console.log(new Date() - before);
},
当前实现的问题是
Date.getmillizes()
返回给定日期时间的千秒部分,即介于0和999[]之间的数字。但实际上,您需要比较给定日期时间的“毫秒统计”——这就是[]的
Date.valueOf()
(或
Date.getTime()
)的含义:

valueOf
方法将日期对象的原始值作为 number数据类型,自午夜01起的毫秒数 协调世界时1970年1月

但是,您可以忽略这些调用,因为
-
操作首先尝试将其操作数强制转换为基本体(如果它们是对象)。所以这个

console.log(new Date() - before);
。。。将被处理为与

console.log(new Date().valueOf() - before);
由于将起始点作为完整日期对象存储在
之前的
中没有什么意义,因此它被转换为一个基本值-使用
+
(一元加号)运算符。

将其更改为:

beforeSend: function () {
    before = +new Date();
},
success: function (data, textStatus, xhr) {
    console.log(new Date() - before);
},
当前实现的问题是
Date.getmillizes()
返回给定日期时间的千秒部分,即介于0和999[]之间的数字。但实际上,您需要比较给定日期时间的“毫秒统计”——这就是[]的
Date.valueOf()
(或
Date.getTime()
)的含义:

valueOf
方法将日期对象的原始值作为 number数据类型,自午夜01起的毫秒数 协调世界时1970年1月

但是,您可以忽略这些调用,因为
-
操作首先尝试将其操作数强制转换为基本体(如果它们是对象)。所以这个

console.log(new Date() - before);
。。。将被处理为与

console.log(new Date().valueOf() - before);
由于将起始点作为完整日期对象存储在
之前的
中没有什么意义,因此它被转换为一个基本值-使用
+
(一元加号)运算符。

将其更改为:

beforeSend: function () {
    before = +new Date();
},
success: function (data, textStatus, xhr) {
    console.log(new Date() - before);
},
当前实现的问题是
Date.getmillizes()
返回给定日期时间的千秒部分,即介于0和999[]之间的数字。但实际上,您需要比较给定日期时间的“毫秒统计”——这就是[]的
Date.valueOf()
(或
Date.getTime()
)的含义:

valueOf
方法将日期对象的原始值作为 number数据类型,自午夜01起的毫秒数 协调世界时1970年1月

但是,您可以忽略这些调用,因为
-
操作首先尝试将其操作数强制转换为基本体(如果它们是对象)。所以这个

console.log(new Date() - before);
。。。将被处理为与

console.log(new Date().valueOf() - before);

由于将起始点作为完整日期对象存储在
之前的
中没有什么意义,因此它被转换为一个基本值-使用
+
(一元加号)运算符。

我认为您对
Date.getTime()
Date.getmillizes

getTime被定义为

返回指定日期的数值作为 自1970年1月1日00:00:00 UTC起的毫秒数(之前为负值 时报)

所以,这也是正确的

before = new Date().getTime();
用于测量执行时间的MDN示例使用

var end, start;

start = new Date();
for (var i = 0; i < 1000; i++)
  Math.sqrt(i);
end = new Date();

console.log("Operation took " + (end.getTime() - start.getTime()) + " msec");
var结束,开始;
开始=新日期();
对于(变量i=0;i<1000;i++)
数学sqrt(i);
结束=新日期();
log(“操作耗时”+(end.getTime()-start.getTime())+“毫秒”);

我想你对
Date.getTime()
Date.getmillizes

getTime被定义为

返回指定日期的数值作为 自1970年1月1日00:00:00 UTC起的毫秒数(之前为负值 时报)

所以,这也是正确的

before = new Date().getTime();
用于测量执行时间的MDN示例使用

var end, start;

start = new Date();
for (var i = 0; i < 1000; i++)
  Math.sqrt(i);
end = new Date();

console.log("Operation took " + (end.getTime() - start.getTime()) + " msec");
var结束,开始;
开始=新日期();
对于(变量i=0;i<1000;i++)
数学sqrt(i);
结束=新日期();
log(“操作耗时”+(end.getTime()-start.getTime())+“毫秒”);

我想你对
Date.getTime()
Date.getmillizes

getTime被定义为

返回指定日期的数值作为 自1970年1月1日00:00:00 UTC起的毫秒数(之前为负值 时报)

所以,这也是正确的

before = new Date().getTime();
用于测量执行时间的MDN示例使用

var end, start;

start = new Date();
for (var i = 0; i < 1000; i++)
  Math.sqrt(i);
end = new Date();

console.log("Operation took " + (end.getTime() - start.getTime()) + " msec");
var结束,开始;
开始=新日期();
对于(变量i=0;i<1000;i++)
数学sqrt(i);
结束=新日期();
log(“操作耗时”+(end.getTime()-start.getTime())+“毫秒”);

我想你对
Date.getTime()
Date.getmillizes

getTime被定义为

返回指定日期的数值作为 自1970年1月1日00:0起的毫秒数