Я хочу измерить , сколько времени потребуется для обработки вызова AJAX. Я запускаю его, но не знаю, как его кодировать в javascript (только js)
Измерение времени обработки вызова AJAX
Ответ 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();
}
});