Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Ajax. Обновление без таймера

444
05 июля 2009 года
patison
323 / / 15.03.2007
Вобщем на странице происходит обновление инфы средствами ajax.
На данный момент, у JS стоит таймер, который каждые N секунд шлёт запрос в пхп скрипт и обновляет данные на странице.
Вся фича в том, что данные эти зачастую через N секунды всё те-же старые, и фактически раз в N секунды я в холостую дёргаю пхп-шный скрипт. А если учесть что на странице могут находиться 50 человек, и у каждого js каждые N секунд обновляет инфу, получается ненужная нагрузка.
В идеале конечно было-бы что-бы php скрипт сам, как-то давал знать всем клиентам что пара приходить за обновлённой инфой.. однако , сдаётся мне, что не возможно это...
Есть у кого-то мысли по этому поводу?
2.1K
05 июля 2009 года
wAngel
129 / / 23.11.2004
То, что Вы делаете называется поллингом.
Вообще, HTTP/1.1 поддерживает постоянное соединение с сервером.
Почитайте тут.
444
05 июля 2009 года
patison
323 / / 15.03.2007
Спасибо. Собсна, по сути у меня щас и происходит поллинг так называемый. Щас почитаю про остальные методы :)

зы А про iframe оооочень интересный вариант решения.
12
06 июля 2009 года
alekciy
3.0K / / 13.12.2005
Цитата: wAngel

Вообще, HTTP/1.1 поддерживает постоянное соединение с сервером.


Да, вот только PHP, если честно, хренова это поддерживает не говоря уже о потреблении ОЗУ )

12
06 июля 2009 года
alekciy
3.0K / / 13.12.2005
По сабжу. На сколько я знаю то, что описано по ссылке как long poll обычно называют commet. В любом случае я надеюсь, что на серверной стороне у тебя не PHP ;)

Ну а когда на клиентской стороне будет нормально поддерживается readyState=3 можно и о HTTP streamig-е подумать )
444
06 июля 2009 года
patison
323 / / 15.03.2007
alekciy: зря надеешься. именно php))
Я собственно оставил всё как было (а именно периодический опрос клиентом сервера. Только диалог немного изменил:
Сначала клиенты говорили серверу "Я тут. Дай мне ВЕСЬ контент что есть, и старый и новый, нам пох на нагрузку, на трафик и тд" ))
Сейчас, клиенты говорят серверу "Я тут, вот что ты мне дал в прошлый раз. Нужна новая инфа. есть чо?", Сервер соответственно отдаёт только то что появилось с последнего обращения клиентом.
312
06 июля 2009 года
dead_star
392 / / 26.11.2006
могу предложить еще пару вариантов
во первых для проверки контента на обнавленность (то что ты сделал) отправлять не весь контент а только хаш стороку этого контента
и на сервере уже сравнивать хеши а не контент
тогда трафик так съедать не будет
или второй вариант
кажется это было реализовано в библиотеке prototype
при обращении js скрипта проверяется не был ли обнавлен контент
если контент измене то обнавляем что надо,
если нет то увеличиваем интервал времени в 2 раза
таким образом получается что с каждым разом интервалы обращений увеличиваются
например первые 5 далее 10, 20, 40...
444
06 июля 2009 года
patison
323 / / 15.03.2007
ну я собсна и не посылаю весь контент.. контент - это сообшения.
Для проверки я шлю id последнего сообщения и по нему проверяю. Нет смысла слать большие массивы инфы туда-обратно если можно послать int.
А увеличивать интервал обновления не есть хорошо. Т.к. инфа должна быть актуальной каждые хотя-бы 2-3 (4, ну максимум 5) секунды.
12
06 июля 2009 года
alekciy
3.0K / / 13.12.2005
Цитата: patison
alekciy: зря надеешься. именно php))


Ну тогда о commet, http streaming и прочих подобных вещах можно забыть. Удел приложений с PHP на серверной стороне это polling.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог