Мой первый AJAX-запрос (ручной или с использованием jQuery load, get, post, ajax) занимает слишком много времени (более 50 секунд). Следование AJAX-запросам становится нормальным.
Когда я решил проблему с помощью раздела «Сеть» Chrome и Firefox, он показал, что ожидание занимает почти 51 секунду (прикреплен скриншот). Почему это занимает так много времени? Я не знаю, что за запрос ждет.
Вот мой код
$(function() {
$('#frmPrd').live('submit', function(event) {
event.preventDefault();
mUrl = "page1.php";
$.ajax({
url: mUrl,
type: 'POST',
data: $("#frmPrd").serialize(),
success: function() {
//Following request is taking 50+ seconds.
$("#dvCart").load("page.php");
},
error: function() {
alert('Error occurred.');
}
});
});
});
Я уже задавал вопрос (по ссылке), но проблема до сих пор не решена.
Простая загрузка jQuery, занимающая слишком много времени для первого вызова
Время ожидания полностью зависит от вашего сервера (и в некоторых случаях от вашего сетевого подключения). Это время от момента, когда клиент отправил запрос, до того, как он впервые начнет получать ответ. Предполагая, что у вас не очень медленное сетевое соединение или соединение с очень плохой задержкой (например, со спутниковой связью), это в значительной степени зависит от того, сколько времени потребуется серверу, чтобы ответить на запрос.
Если только самый первый вызов ajax является таким медленным, то, вероятно, на сервере есть какое-то время запуска. Если это загруженный сервер или перегруженный сервер, возможно, ваше приложение выгружено из памяти или кэш-память пуста, и требуется больше времени для запуска приложения и его готовности начать обработку ответа. Это может быть более распространено в среде общего хостинга, когда многие другие активные приложения используют одни и те же ресурсы, а ваш сервер еще не был активным в последнее время.
Так как это выглядит как сервер PHP, возможно, что движок PHP, используемый веб-сервером, имеет некоторое время запуска, или веб-сервер должен что-то загрузить, прежде чем он сможет начать обработку запросов PHP, и эта инициализация занимает много времени. Или это может быть так же просто, как если бы жесткий диск на сервере был выключен, и он должен набрать скорость до того, как все начнёт обрабатываться.
Потребуются инструменты и профилирование на сервере, чтобы точно определить, какая возможная проблема является основной причиной задержки на стороне сервера.
Других решений пока нет …