$.ajax и .load() при большом количестве посетителей — реально?
Ребят, подскажите пожалуйста. Организовал навигацию по сайту ( + мониторинг нажатия кнопок "Назад", "Вперёд" ) средствами ajax( $.ajax, .load() ).
Вопрос стоит такой - не сильно ли это будет грузить сервер, на котором стоит сайт? Очень жалею что не хватило ума поинтересоваться этим когда сайт уже практически готов. Да и времени не мало потратил на организацию работы всей этой схемы.
Сайт с ajax работает очень шустро, отсюда и количество запросов увеличиться ( можно конечно штучно добавить задержку перед каждым запросом в виде лоадера )
Были замечены ошибки 501,504,404 при одиночном использовании сайта, возникающие при подгрузке определённого элемента страницы возникающие периодически ( исправил повторной отправкой запроса, при которой ответ всегда удавалось получить без ошибки ).
Спасибо за уделённое время. И напоследок - если все так плохо, как с этим бороться ? ( нету времени на переписывание, кроме как минимизировать влияния js или ajax на нагрузку сервера или если возможно, за короткие строки заменить их аналогичными методами ).
* Большое количество посетителей - 100-200 в день, 50% из которых будут использовать не только функцию простого просмотра содержания сайта ( посылать сообщения, комментировать записи, создавать темы, прикреплять фотографии ... )
Среднее количество запросов в вебе - это от 1000 в секунду на 1 сервер :)
Ajax по опыту снижает нагрузку на сервер за счет экономии трафика => более быстро отдаются запросы.
Вы занимаетесь затыканием дыр, вместо того что бы разобраться в первопричине.
Если у вас иногда отдается ошибка при запросе - у Вас что то фатально не так.
Смотрите лог ошибок сервера, php_errors итд.
Возможно у вас очень [sarcasm]дорогой[/sarcasm] тариф у хостера и памяти/проца/чего то еще иногда не хватает.
"Нагружаться" сервер будет пропорционально количеству получившихся запросов. Если для статичного сайта средняя сессия была, скажем, в 10 запросов, а динамическая получилась в 40 запросов, то серверу будет максимум в четыре раза тяжелее, не более. А учитывая экономию на трафике, может выйти что серверу в итоге даже легче будет.
Сам по себе $.ajax не страшен (если кешируется нормально), проблема в том что у вас вылазят ошибки там, где их быть не должно (костыль в виде второй попытки подгрузки - не решение проблемы) А пока у вас есть необъяснимые ошибки сложно что-либо предвидеть, может и три человека уронят.
А каким образом формируется запрос на сервер через ajax, чую что-то асинхронно в другом месте не успевает обработаться и запрос на сервер кривой уходит или перезапись параметров происходит в js. Отследите через Console.log() как меняются параметры запросов. Ибо 404 это ответ сервера что такой страницы не существует, ну а 504 видимо вылазит из-за того что похапе не успевает обработать и отдать серверу инфу за то время когда сервер должен вернуть ее.
Спасибо ребят за ответы.
На счет ошибок - сайт стоит на бесплатном плане hostinger ( для тест поставил там ). Ошибки возникают когда выполняется функция $("#pageid").load("/pages/page.php?param=1");
php сторона обычная, аля
Не вижу где возможно посмотреть на hostinger'e лог ошибок. Chrome только показывает в логе что статус ошибки 500 (Internal server error )
Спасибо еще раз всем за ответы.
@begemot_sun , Прочитайте внимательно, я его только тестирую) Понятное дело что готовый проект будет стоять на платном хостинге. Хотел только узнать, может ли это быть из-за hostinger'a чтобы не повторилось на другом, платном хосте. Спасибо.
В яндекс метрике есть что то вроде подписки на события - это вероятно то, что вам нужно. help.yandex.ru/metrika/objects/reachgoal.xml
По крайней мере разгрузит ваш сервер от этой рутины. Можно передавать туда что угодно, и оно будет логироваться в метрике.
Просто подвешиваете yaCounterXXXXXX.reachGoal() с нужными вам параметрами на нужные кнопки и вуаля.