Огромная задержка на втором запросе jQuery Ajax - PullRequest
0 голосов
/ 12 января 2011

Я пытаюсь выполнить простой вызов Ajax с обновлением содержимого страницы с помощью следующего фрагмента кода:

$("a.ajaxify-watched").bind("click", function(event) {

    $item = $(this);

    $.ajax({
        url: $(this).attr("href"),
        global: false,
        type: "GET",
        data: ({
            callback : "inline"
        }),
        dataType: "json",
        async:false,
        success: function(msg){
            if (msg.status == 200) {
                toggleStatus($item, msg)
            }
        }
    });
    return false;
});

Это прекрасно работает, и мне не о чем беспокоиться о коде, кроме скорости его выполнения.

В первый раз все работает очень хорошо: 47 мс на операцию.Но после этого каждый второй вызов Ajax получает постоянную задержку в 2,6 секунды - каждый раз.Я проверил с Firebug и обнаружил, что оно отображается как «Время ожидания».

Я не могу точно сказать, что здесь происходит.Недавно мы перешли с чистого Apache2 на обратный прокси-сервер кэширования Nginx с балансировкой нагрузки с помощью Apache в качестве внутреннего интерпретатора Php.Мы могли видеть огромное повышение производительности, и все работает действительно хорошо.Я не могу сказать, когда моя проблема появилась впервые и имеет ли она какое-то отношение к нашей новой настройке сервера.

Я только что узнал сегодня, что есть проблема с jQuery, поэтому я просто хотел дать столько жеинформация, насколько это возможно.

Спасибо и дайте мне знать, если я должен предоставить дополнительную информацию.

1 Ответ

0 голосов
/ 12 января 2011

Если Firebug указывает на ожидание, это похоже на проблему с сервером.

Есть ли способ вызывать страницы напрямую без ajax? Если это так, попробуйте сделать это и проверьте, загружаются ли страницы быстро или медленно?

Также убедитесь, что у вас нет событий, запускающих ajax, которые могут повлиять на это.

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

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