Запрос Ajax занимает слишком много времени - PullRequest
4 голосов
/ 01 августа 2011

Я спрашиваю вас, потому что у меня нет никаких идей ...

Я сделал запрос ajax, который получает небольшие данные с сервера.Ответ json уже кешируется сервером, поэтому он довольно быстрый.

Как и

window.xhr = $.ajax({
url: domain+'index.php?fx_action=ajax&fx_mode=continents&fx_type=countries&fx_ajaxid='+window.currentajaxrequest+'&fx_id='+window.id+'&fx_page='+(window.page-1)+'&fx_pager='+window.pager+'&fx_order='+window.order,
type: 'POST',
dataType: 'json',
timeout: 5000,
cache: false,
async: true,
beforeSend: function () {
        ...
    },
    error: function (xhr, ajaxOptions, thrownError) {
        return false;
    },
    success: function (data) {  
        ...

Но время ответа уменьшается в огромных масштабах, иногда это занимает 1 секунду, иногда просто67 миллисекунд ...

continents.js:65  http://teszt.domain.com/index.php?fx_action=ajax&fx_mode=continents&fx_type=countries&fx_ajaxid=0&fx_id=6&fx_page=1&fx_pager=9&fx_order=name
continents.js:100 start: 0
continents.js:101 beforesend: 9
continents.js:102 success: 5087
continents.js:103 complete: 5096
continents.js:65  http://teszt.domain.com/index.php?fx_action=ajax&fx_mode=continents&fx_type=countries&fx_ajaxid=1&fx_id=6&fx_page=2&fx_pager=9&fx_order=name
continents.js:100 start: 0
continents.js:101 beforesend: 9
continents.js:102 success: 70
continents.js:103 complete: 77
continents.js:65  http://teszt.domain.com/index.php?fx_action=ajax&fx_mode=continents&fx_type=countries&fx_ajaxid=2&fx_id=6&fx_page=3&fx_pager=9&fx_order=name
continents.js:100 start: 0
continents.js:101 beforesend: 11
continents.js:102 success: 301
continents.js:103 complete: 304

При получении одинаковой структуры данных с почти одинаковым размером в килобайтах.И все кешируется сервером.

На стороне сервера время работы php всегда около 30-40ms.В чем моя ошибка?

1 Ответ

1 голос
/ 01 августа 2011

Помимо скачков скорости и производительности сети на вашем сервере, вы можете столкнуться с ограничением в 2 активных соединения с одним именем хоста в браузере. Несколько вопросов:

  • У вас есть другие запросы, которые могут выполняться одновременно?
  • Этот скрипт работает при запуске страницы? Если это так, это может быть борьба на мечах с другими запросами ресурсов.

Я бы посоветовал взглянуть на сетевую панель в firebug, чтобы проверить, что еще происходит во время выполнения вашего запроса.

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