Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > JavaScript для плавного обновления фрейма чата


Автор: SharK 1.11.2002, 02:50
Помогите !! У меня есть чат(www.vipchat.4u.ru) -(это не реклама)
Мне нужно чтобы фрейм с сообщениями обновлялся плавно т.е. чтоб почти не видно было refresh'а. Помогите, напишите здесь код скрипт, чтобы можно было это сделать :(

Автор: MuToGeN 1.11.2002, 05:08
можно средствами DHTML... делаешь два IFRAME, первый - видимый, второй - нет. при обновлении загружаешь содержание второго, в нем в OnLoad пишешь скрипт который скроет первый и отобразит второй.
есть еще вариант с CSS. в точности все не помню, но там можно сделать не только плавное обновление, но и кой-какие графич. эффекты

Автор: NightGoblin 4.12.2002, 16:59
А не лучше вообще без обновлений?...

Автор: jeka 18.1.2003, 05:22
Есть такая идея, нет времени реализовать и опробывать...
пусть фрейм (невидимый) загружает пагу, а в паге пусть содержутся команды добавления текста к основному окну... Где то я это видел...
Или больее сложный способ через сокиты, но и более эффективный (примерно как WebICQ)...

Автор: Alx 6.1.2006, 17:15
вот как делал я:
одна болшая страница. В середине <div style="overflow:auto;"></div>
внизу два нуль-iframe`а. через один происходит отсылка строки и запись в базу, через вторую приём. В главной странице через каждое кол-во миллисекунд (устанавливается в настройках) идёт обновление второго нуль-iframe`а, с присвоением ему GET-переменной обозначающей время последнего выведенного сообщения, далее read.php выбирает из базы сообщения у которых _TIME > $_GET['last_mess_time'], парсит и делает innerHTML в конец <DIV>`а в главном окне.
При этом почему то происходит заметное обновление фрейма (прелоадер в браузере мигает) и к тому же щелчки в Эксплорере... Что делать?
пример здесь - http://mash.web-pages.ru/chat.php?userid=1

Автор: Black 7.1.2006, 15:29
В последнее время от фреймов отказались в пользу XMLHttpRequest
Поищите по форуму. На эту тему уже много раз говорили.

Автор: GiG 15.2.2006, 12:34
Цитата(Black @ 7.1.2006, 15:29 Найти цитируемый пост)
В последнее время от фреймов отказались в пользу XMLHttpRequest
Поищите по форуму. На эту тему уже много раз говорили.

К сожалению и у XMLHttpRequest при использовании для чатов есть свои недостатки. smile
А именно, при большом колличестве картинок в IE при каждой дозагрузке страницы перегружаются все картинки (броузер IE почему-то упорно не хочет их кешировать, даже если ему указывать это явно).

А обновление страницы я делаю с помощью следующей конструкции:
Код

parent.frames['chat_main'].document.body.innerHTML=obj.response_load+parent.frames['chat_main'].document.body.innerHTML;

где obj.response_load - новый контент.

Как избавиться от перезагрузки картинок понятия не имею. smile
Может кто-то подскажет как избавиться от перезагрузки картинок? smile

Автор: sulla 16.2.2006, 13:00
собственно способ : добавления данных без перезагрузки старницы: http://dklab.ru/lib/Subsys_JsHttpRequest/

вот пример работы
http://alx.com.ru/stats/dataload/test.html

вот архив:
http://alx.com.ru/stats/dataload/dataloaders.rar

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)