2009-10-27 1 views
1

У меня есть простой вызов jQuery Ajax, который получает HTML-результаты из файла PHP (который просто выполняет запрос mysql и форматирует результаты в списке). Проблема, с которой я сталкиваюсь, заключается в том, что весь этот вызов Ajax занимает около 12 секунд (время ожидания ответа в Firebug - 12.3 с), но когда я просто загружаю страницу PHP с теми же параметрами URL в моем браузере, вся страница загружается примерно в 300 мс (и когда я просто запускаю SQL-запрос, который вызывает файл PHP, он занимает менее 1 мс).Задержка при получении результатов Ajax с использованием jQuery

Некоторые другие замечания, которые могут помочь:

  • Размер данных Ajax является 2К, так что я не думаю, что его из-за этого.
  • Данные взяты намного быстрее, чтобы загрузить (около 4.3 секунд), если один и тот же вызов ajax выполняется с теми же параметрами после того, как он был запущен один раз до этого (даже если у меня есть Cache-Control для страницы, установленной на: private, нет-магазин, нет кэша, нужно обязательно перепроверять, после проверки = 0, предварительно проверить = 0)

Вот исходный код JQuery для вызова Ajax:

$.ajax({ 
      url: "./lib/hippofunctions.php", 
      type: "GET", 
      dataType: "html", 
      data: 
       { 
        "ajax_action" : "get_hippos_for_tags", 
        "curTags" : currentCheckedTags, 
        "sortBy" : sortBy, 
        "params" : checkedFriendsStr, 
        "location" : location, 
        "start" : start 
       }, 
      error: function(request){my_alert("error on ajax_getHipposfortags ")}, 
      success:function(data){ 
       $("#HippoContainer_inner").html(data); 
     } 
     }) 
    } 

любые мысли или предложения, почему он так долго принимает данные Ajax и как я могу ускорить это?

+0

вы пробовали войти в разговор с HttpFox или подобное? Обратите особое внимание на то, где задержка. – cletus

+0

Да, это в значительной степени показывает мне то же самое, что и Firebug. единственный запрос делается на страницу PHP, которую вызывает функция ajax. – Antony

ответ

0

Я обновлю это с большим количеством предложений, но сейчас сделать некоторые тесты производительности на функцию успеха:

success:function(data){ 
console.time("data render"); 
$("#HippoContainer_inner").html(data); 
console.timeEnd("data render"); 
} 
+0

спасибо за предложение. таймер обработки данных составляет всего 18 мс для функции успеха – Antony

Смежные вопросы