![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| Alix36 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 478 Регистрация: 6.11.2006 Репутация: нет Всего: 3 |
я тут решил переделать чат из чистого РНР а аjах+ РНР и столкнулся с такой проблемой, Можно ли ограничить передачу данных, т.е.
пользователь загрузил чат- показывает 5 сообщений таймер отсчитал-смотрим если появились новые сообщения то делаем обновление, если нет- считаем еще раз. -------------------- Наши лица как дым, И никто не узнает как мы победим. (С)Пикник. |
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Нет, узнать есть ли новые сообщения не обращаясь к серверу нельзя (оставим SUBSCRUBE в сторону). Это значит через каждый промежуток времени ты делаешь запрос, который может вернуть от 0 и более новых сообщений.
Почему возникла такая идея? XMLHttpRequest запрос асинхронный и совсем не накладный. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| Alix36 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 478 Регистрация: 6.11.2006 Репутация: нет Всего: 3 |
Что значит Не накладный?
Насколько я знаю асинхронный запрос не играет роли в данном вопросе. Можно написать механизм, чтобы скрипт на сервере при посылки запроса проверял , есть ли новые сообщения , например по ID сообщения чата, т.е. 5 мин назад последним было 46 сообщение а те5перь 47, значит информацию нужно посылать еще раз, если было 46 и осталось 46 то посылать ничего ненадо. Но тогда возникает проблема хранения ID сообщения. Серверные скрипты они прерывны, значит нужно писать либо в кукисы к юсерам или в базе что есть лишний перегруз сервера. Ладно если такого нет, то ответте на 2 вопроса. 1.как оптимально делать обнавления. Я делаю так
reqchat-сам запрос. 2. Через какое время оптимально делать следующее обнавление , т.е. через сколько должен срабатывать SETTIMEOUT в функции. -------------------- Наши лица как дым, И никто не узнает как мы победим. (С)Пикник. |
|||
|
||||
| vasac |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1060 Регистрация: 4.5.2006 Репутация: 13 Всего: 36 |
А причем тут серверные скрипты? У пользователя открыт браузер, в котором постоянно работает сценарий, отвечающий за чат. Он посылает серверу запросы, типа "а нет чего-нибудь свеженького?" Он и должен знать ID последнего отображенного в браузере сообщения. 1. ИМХО, setInterval() был бы более кстати 2. Определяется чисто интуитивно на основе опыта работы в каждом конкретном чате, в при каждом конкретном среднем количестве посетителей. Можно предоставить пользователям выбор. |
|||
|
||||
| Alix36 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 478 Регистрация: 6.11.2006 Репутация: нет Всего: 3 |
аа. расскажи отличие 2 х функций
-------------------- Наши лица как дым, И никто не узнает как мы победим. (С)Пикник. |
|||
|
||||
| vasac |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1060 Регистрация: 4.5.2006 Репутация: 13 Всего: 36 |
Ну, млин, молодой человек, дока все расскажет.
|
|||
|
||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |