Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ajax проверка на обнавления. 
:(
    Опции темы
Alix36
Дата 28.3.2007, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 478
Регистрация: 6.11.2006

Репутация: нет
Всего: 3



я тут решил переделать чат из чистого РНР а аjах+ РНР и столкнулся с такой проблемой, Можно ли ограничить передачу данных, т.е.
пользователь загрузил чат- показывает 5 сообщений
таймер отсчитал-смотрим если появились новые сообщения то делаем обновление, если нет- считаем еще раз.
 smile 


--------------------
Наши лица как дым, И никто не узнает как мы победим. (С)Пикник.
PM MAIL   Вверх
Sardar
Дата 28.3.2007, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Нет, узнать есть ли новые сообщения не обращаясь к серверу нельзя (оставим SUBSCRUBE в сторону). Это значит через каждый промежуток времени ты делаешь запрос, который может вернуть от 0 и более новых сообщений.

Почему возникла такая идея? XMLHttpRequest запрос асинхронный и совсем не накладный.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Alix36
Дата 28.3.2007, 19:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 478
Регистрация: 6.11.2006

Репутация: нет
Всего: 3



Что значит Не накладный?
Насколько я знаю асинхронный запрос не играет роли в данном вопросе.
Можно написать механизм, чтобы скрипт на сервере при посылки запроса проверял , есть ли новые сообщения , например по ID сообщения чата, т.е. 5 мин назад последним было 46 сообщение а те5перь 47, значит информацию нужно посылать еще раз, если было 46 и осталось 46 то посылать ничего ненадо. Но тогда возникает проблема хранения ID сообщения. Серверные скрипты они прерывны, значит нужно писать либо в кукисы к юсерам или в базе что есть лишний перегруз сервера. 
Ладно если такого нет, то ответте на 2 вопроса.
1.как оптимально делать обнавления. Я делаю так
Код

 function chatupd()
        {
        reqchat();
  
        setTimeout(chatupd,15000);
        }

reqchat-сам запрос.
2. Через какое время оптимально делать следующее обнавление , т.е. через сколько должен срабатывать SETTIMEOUT в функции.


--------------------
Наши лица как дым, И никто не узнает как мы победим. (С)Пикник.
PM MAIL   Вверх
vasac
Дата 28.3.2007, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1060
Регистрация: 4.5.2006

Репутация: 13
Всего: 36



Цитата(Alix36 @  28.3.2007,  19:07 Найти цитируемый пост)
Серверные скрипты они прерывны, значит нужно писать либо в кукисы к юсерам или в базе что есть лишний перегруз сервера. 

А причем тут серверные скрипты?
У пользователя открыт браузер, в котором постоянно работает сценарий, отвечающий за чат. Он посылает серверу запросы, типа "а нет чего-нибудь свеженького?" Он и должен знать ID последнего отображенного в браузере сообщения.

1. ИМХО, setInterval() был бы более кстати

2. Определяется чисто интуитивно на основе опыта работы в каждом конкретном чате, в при каждом конкретном среднем количестве посетителей. Можно предоставить пользователям выбор.
PM WWW   Вверх
Alix36
Дата 28.3.2007, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 478
Регистрация: 6.11.2006

Репутация: нет
Всего: 3



аа. расскажи отличие 2 х функций


--------------------
Наши лица как дым, И никто не узнает как мы победим. (С)Пикник.
PM MAIL   Вверх
vasac
Дата 28.3.2007, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1060
Регистрация: 4.5.2006

Репутация: 13
Всего: 36



Ну, млин, молодой человек, дока все расскажет.
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0434 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.