Ajax. Обновление без таймера
На данный момент, у JS стоит таймер, который каждые N секунд шлёт запрос в пхп скрипт и обновляет данные на странице.
Вся фича в том, что данные эти зачастую через N секунды всё те-же старые, и фактически раз в N секунды я в холостую дёргаю пхп-шный скрипт. А если учесть что на странице могут находиться 50 человек, и у каждого js каждые N секунд обновляет инфу, получается ненужная нагрузка.
В идеале конечно было-бы что-бы php скрипт сам, как-то давал знать всем клиентам что пара приходить за обновлённой инфой.. однако , сдаётся мне, что не возможно это...
Есть у кого-то мысли по этому поводу?
То, что Вы делаете называется
зы А про iframe оооочень интересный вариант решения.
Цитата: wAngel
Вообще, HTTP/1.1 поддерживает постоянное соединение с сервером.
Да, вот только PHP, если честно, хренова это поддерживает не говоря уже о потреблении ОЗУ )
Ну а когда на клиентской стороне будет нормально поддерживается readyState=3 можно и о HTTP streamig-е подумать )
Я собственно оставил всё как было (а именно периодический опрос клиентом сервера. Только диалог немного изменил:
Сначала клиенты говорили серверу "Я тут. Дай мне ВЕСЬ контент что есть, и старый и новый, нам пох на нагрузку, на трафик и тд" ))
Сейчас, клиенты говорят серверу "Я тут, вот что ты мне дал в прошлый раз. Нужна новая инфа. есть чо?", Сервер соответственно отдаёт только то что появилось с последнего обращения клиентом.
во первых для проверки контента на обнавленность (то что ты сделал) отправлять не весь контент а только хаш стороку этого контента
и на сервере уже сравнивать хеши а не контент
тогда трафик так съедать не будет
или второй вариант
кажется это было реализовано в библиотеке prototype
при обращении js скрипта проверяется не был ли обнавлен контент
если контент измене то обнавляем что надо,
если нет то увеличиваем интервал времени в 2 раза
таким образом получается что с каждым разом интервалы обращений увеличиваются
например первые 5 далее 10, 20, 40...
Для проверки я шлю id последнего сообщения и по нему проверяю. Нет смысла слать большие массивы инфы туда-обратно если можно послать int.
А увеличивать интервал обновления не есть хорошо. Т.к. инфа должна быть актуальной каждые хотя-бы 2-3 (4, ну максимум 5) секунды.
Цитата: patison
alekciy: зря надеешься. именно php))
Ну тогда о commet, http streaming и прочих подобных вещах можно забыть. Удел приложений с PHP на серверной стороне это polling.