Выясните, сколько времени занимает выполнение AJAX-запроса. - PullRequest
0 голосов
/ 25 ноября 2010

Я пытаюсь выяснить, сколько времени занимает выполнение AJAX-запроса, когда кнопка нажата до сих пор, у меня есть этот код:

$(document).ready(function() {
    $('#start').click(function() {
        start_timer();
        var record = $.ajax({url: "ajax.php?getSensor="+devid, async: false }).responseText;
        $("textarea#recordTextbox").val($('textarea#recordTextbox').val()+record+"\n");
        stoptimer();
    }); 
});

И мои функции таймера выглядят так:

function start_timer() {
     display();
}
function stoptimer() {
  clearTimeout(timer);
  timer = 0;
}
function display(){
  if (millisec>=9){
     millisec=0
     seconds+=1
  }
  else
     millisec+=1
     $("#time").html(seconds + "." + millisec);
     timer = setTimeout("display()",100);
  }

Запрос AJAX отправляется правильно, но таймер читает 0,1 секунды каждый раз, я знаю, что это занимает больше времени, чем это, потому что страница зависает не менее 3 секунд.По какой-то причине таймер не работает, когда он выключен, выполняя свою сделку AJAX.

Любой совет поможет, спасибо!

Ответы [ 4 ]

3 голосов
/ 25 ноября 2010

Вы можете сделать это проще с помощью асинхронного запроса как такового:

$(document).ready(function() {
    $('#start').click(function() {
        start_timer();
        $.ajax({url: "ajax.php?getSensor="+devid, async: false, success: function(data){ 
            $("textarea#recordTextbox").val($('textarea#recordTextbox').val()+data+"\n");
            stoptimer(); 
        }});
    }); 
});
1 голос
/ 25 ноября 2010

Я не мог заставить этот таймер работать, поэтому я использовал Date (). GetTime () так:

    var start_time = new Date().getTime();       
    $.ajax({url: "ajax.php?getSensor="+devid, async: false, success: function(data){ 
        $("textarea#recordTextbox").val($('textarea#recordTextbox').val()+data+"\n");
        request_time = new Date().getTime() - start_time; 
    }});
    $("#time").html(request_time/1000);
1 голос
/ 25 ноября 2010

Если вы делаете это, чтобы помочь развитию, используйте firebug .

0 голосов
/ 25 ноября 2010

Просто запустите YSlow над ним.

Для общего подхода к определению того, что не так с вашими загрузками страниц и AJAX-запросами, используйте YSlow дополнение для Firefox .

Это покажет вам вещи, о которых вы даже не мечтали, которые замедляют ваш код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...