Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [xAJAX] загрузка данных без участия юзера 
V
    Опции темы
Гвоздь
Дата 2.6.2007, 08:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



мне нужно, при помощи либы xAJAX написать загрузку данных на страницу, если были новые данные.. вообщем, что-то вроде как в чатах.. если новые сообщения есть, то осуществить загрузку данных на страницу в div блок, если нету, то не осуществлять.. я не знаю, каким образом такое сделать на xAJAX(( думаю, может каждые 5 секунд обновлять определённую область страницы, где должны отобрадаться сообщения, но не знаю как и это реализовать.. просто если каждые 5 сек обновлять, то будет слишком глючно, особенно у модемщиков.. но всё-таки, как подобное можно реализовать, подскажите..
PM MAIL WWW ICQ   Вверх
sTa1kEr
Дата 2.6.2007, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


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

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



Цитата(Гвоздь @  2.6.2007,  08:01 Найти цитируемый пост)
думаю, может каждые 5 секунд обновлять определённую область страницы, где должны отобрадаться сообщения, но не знаю как и это реализовать.. просто если каждые 5 сек обновлять, то будет слишком глючно, особенно у модемщиков..

Нет смысла обновлять каждые 5 секунд, достаточно посылать асинхронный запрос о наличии изменений за такой-то период на сервер каждые 5 секунд. Т.е. если в ответ пришло false, то ничего не делаем, если пришли данные, что через DOM(хотя можно и через innerHTML, но лучше через DOM) добавляем эти данные (Так что даже для модемщиков это не будет заметно). Сам xAJAX сделан довольно просто, т.ч. тут проблем, я думаю, не должно быть.

Это сообщение отредактировал(а) sTa1kEr - 2.6.2007, 15:37
PM MAIL   Вверх
Гвоздь
Дата 2.6.2007, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(sTa1kEr @  2.6.2007,  15:36 Найти цитируемый пост)
достаточно посылать асинхронный запрос о наличии изменений за такой-то период на сервер каждые 5 секунд.

хм, а как его можно посылать каждые 5 сек? можно пример, пожалуйста?
PM MAIL WWW ICQ   Вверх
Гвоздь
Дата 2.6.2007, 20:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



всё, сделал уже. при помощи setTimeout вызываю функцию обновления поля сообщений. получается совсем не заметно для модемщиков.
PM MAIL WWW ICQ   Вверх
CyClon
Дата 4.6.2007, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



ИМХО, мой алгоритм:

1. С помощью AJAX отправляем запрос скрипту, например "http://site.com/chat.php?last=1180954700"
2. Скрипт сравнивает "last" с временем последнего сообщения
а) Если время последнего сообщения больше переменной "last", то отправляем юзеру время последнего сообщения на сервере + пачку новых сообщений. Время последнего сообщения заносится в переменную last у юзера, новые сообщения добавляются в браузер.
б) Иначе отправляем 0 или false или еще что-нибудь. В браузере ничего не происходит.
3. Переходим к путку 1 через 15 секунд.

С таким алгоритмом мы будем получать новые сообщения в браузер при минимальных затратах трафика.


--------------------
user posted image
PM   Вверх
ST_Falcon
Дата 17.6.2007, 12:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 330
Регистрация: 14.11.2003
Где: Львов

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



А не офигеет ли сервер с 1000й людей в онлайне, которые ему каждые 5ть секунд запросы будут посылать? И это помимо основной работы сайта...
PM MAIL ICQ   Вверх
sTa1kEr
Дата 17.6.2007, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


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

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



Цитата(ST_Falcon @  17.6.2007,  12:11 Найти цитируемый пост)
А не офигеет ли сервер с 1000й людей в онлайне, которые ему каждые 5ть секунд запросы будут посылать?

С 1000-ю людей одновременного онлайна может офигеть любой сервер и без постоянных запросов AJAX. Но все же если надо привести к минимум затраты сервера в ответ на запрос о наличии обновлений, то для этого можно генерировать готовый XML с датой последнего сообщения и обращаться к этому статическому XML (т.е. в обход PHP) и уже на стороне клиента сравнивать даты. Не оптимизированная работа основного скрипта будет съедать *значительно* больше ресурсов, чем все подобные запросы в сумме.
PM MAIL   Вверх
Alx
Дата 21.6.2007, 00:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

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



настоятельно рекомендую:
http://prototypejs.org/api/ajax/periodicalUpdater


--------------------
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: X технологии | Следующая тема »


 




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


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

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