Подтвердить что ты не робот

Измерение времени обработки вызова AJAX

Я хочу измерить , сколько времени потребуется для обработки вызова AJAX. Я запускаю его, но не знаю, как его кодировать в javascript (только js)

4b9b3361

Ответ 1

var start = new Date().getTime();
doAjax({
  success: function() {
    var end = new Date().getTime();
    console.log('milliseconds passed', end - start);
  }
});

сохраните значение времени перед тем, как начать делать ajax-материал, а затем сделайте это снова, когда закончите. Затем вычтите одну форму другой и получите свое время.

Ответ 2

Это не даст точных таймингов, потому что javascript использует очередь событий. Это означает, что ваша программа может выполняться следующим образом:

  • Запустите запрос AJAX
  • Обработать ожидающее событие щелчка мыши/любую другую строку ожидания кода тем временем
  • Начать обработку ответа AJAX

К сожалению, нет способа получить время, когда событие было добавлено в очередь, насколько я знаю. Event.timeStamp возвращает время, когда событие было вытолкнуто из очереди, см. Эту скрипту: http://jsfiddle.net/mSg55/.

Html:

<a href="#">link</a>
<div></div>

JavaScript:

$(function() {
    var startTime = new Date();
    $('a').click(function(e) {
        var endTime = new Date(e.timeStamp);
        $('div').append((endTime - startTime) + " ");
        //produce some heavy load to block other waiting events
        var q = Math.PI;
        for(var j=0; j<1000000; j++)
        {
            q *= Math.acos(j);
        }
    });

    //fire some events 'simultaneously'
    for(var i=0; i<10; i++) {
        $('a').click();
    }
});