Собираюсь реализовать чат на лонг пуллинг технологии. Так вот возник такой вопрос, как для оптимизации нагрузки будет правильнее сделать
а) Отправляем аякс запрос, и в пхп, циклом проверяем сообщения, а так же в каждой итерации цикла делаем слип(секунду) для оптимизации. И так, примерно 20-30 секунд, и если ответа нет, возвращаем фалсе. Если сообщения есть, тогда понятно что нужно делать выборку.
б) Так же отправляем запрос аяксом, и делаем одиночную проверку новых сообщений, возвращаем данные, и если сообщений нет, опять через n секунд делаем запрос на пхп сервер, и проверяем сообщения.
То есть разница заключается в том, что в первом способе мы делаем запрос каждые 40 секунд, и эти 40 секунд, примерно каждую одну, проверяются новые сообщения, а между ними идёт слип().
А во втором способе мы делаем каждую секунду запрос на сервер, и там получаем сразу ответ, затем опять небольшая пауза, и запрос.
Вот я и не знаю как лучше сделать, один запрос и технология ожидания на сервере, или каждые пару секунд, новый запрос, затем ожидание в клиенте (цикл повтора будет в яваскрипте). Спасибо
Добрый вечер! Правильная реализация long polling - это делается один длинный запрос, я делал зацикливание на стороне сервера. Ваш первый вариант а) лучше чем - б), потому что с каждым запросом, а это запрос в бд, т.е. нужен или не нужен, он всегда будет запрашивать данные с бд, а это как раз нагрузка. Так что делайте по первому варианту и ставьте просто тайм-аут 20-30 сек. И еще по возможности обойтись от сессии в цикле!
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Не могу разобраться, при отправке файлов без Ajax - всё норм, при отправке через Ajax - письмо с вложением не отправляется
Есть карта, с несколькими маршрутами, как поставить балун для каждого маршрута, чтоб по нажатию на маршрут он открывался, и как отцентрировать...