2013-10-23 9 views
5

$ .ajaxリクエストがあり、開始時刻と終了時刻を保存しています(new Date().getMilliseconds()を使用)。私はときどきstartTimeendTimeから引いて、負の数を得る奇妙な出現を見る。ajaxの読み込み時間を測定する

(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?! 
     } 
    }); 
})(); 

誰か説明できますか?私は、時空の連続体の裂け目を除いて論理的な説明があると確信しています。

(これを測定するためのより良い方法があれば、それはあまりにも理解されるだろう!)

+0

'beforeSend'ハンドラに' startTime'を置くとどうなりますか?そしてgetmillisecondsは0〜999の数字だけを与えますか? – greener

+1

オプションに 'cache:false'を付けるとどうなりますか? – Barmar

+1

@d -_- b http://stackoverflow.com/questions/221294/how-do-you-get-a-timestamp-in-javascript – greener

答えて

8

.getMillisecondsあなたがDateオブジェクトを作成した時のミリ秒部分を返します。したがって、比較の50%で、その部分は他のどのDateオブジェクトよりも高いか低いでしょう。 Unixエポックは、1970年に始まって以来、何をしたい

絶対ミリ秒を返す、

2

A little test saysnew Date().getTime()次のとおりです。

var start = new Date().getTime(); // note getTime() 
$.ajax({ 
    url  :"/url.php", 
    data : someObject, 
    method : "POST", 
    cache : false,    // prevent caching response 
    complete: function(){ 
     var end = new Date().getTime(); 
     console.log(end - start); 
    } 
}); 

var date  = new Date(); 
var systemMS = date.getMilliseconds(); 
var timeMS = date.getTime(); 


alert('Currently your clock is at ms : '+ systemMS); 
alert('"ms" since 1 January, 1970 UTC. : '+ timeMS ); 

そうにしてみてくださいMDNは言う:

getMillisecondsgetMillisecondsによって返された値がこれはしばしばマイナスになります

5

0〜999の数(約半分の時間)で、これはからのミリ秒数を取得していないとして、エポック(1970年1月1日)。これは現在の日付時刻のミリ秒数を取得しています。したがって、最後の秒から400ミリ秒が経過した場合、400を取得します...最後の秒から800ミリ秒が経過した場合、800秒になるでしょう。

あなたが探している機能は次のとおりです。 getTime()

+0

素晴らしい、説明のおかげで! –

関連する問題