Программирование > JavaScript & JScript

Скриптик для чата

(1/2) > >>

Гость:
Народ помогите плииииз.....
У меня такой вопрос:
Я пишу чат на PHP, и у меня возник вопрос:
Как сделать при помощи JavaScript и PHP окно каторое каждые 5 секунд выводит новые сообщения с плавным перемещением скрола вниз, суть моего вопроса в том, что я непридумаю никак как сделать так, чтобы одни и теже сообщения не грузились по несколько раз, ведь если делать обновление фрейма каждые 5 секунд, то во первых, это тормозит чат, во вторых, постоянное моргание перед глазами.
У меня была одна идея, что если каждые 5 секунд создовать PHP скриптом файл с уникальным именем, затем JavaScript скрипт читает этот файл как просто сценарий JavaScripts, после чего выводит на экран содержимое файла, а следующая функция поавно передвигает скрол вниз.
Я неуверен что мои фонтазии может осуществить JavaScript, но прошу помоч...
Деньгами я за работу расплотиться несмогу, но после написания чата, кину линк на ZIP архив если хотите! :)

Пример того, чего я хочу: http://www.august4u.ru
Заранее спосибо.

Макс:
Идея примерно такая:
Делаеш скрытый фрейм, который перегружаеш каждые 5 секунд и в который грузиш php-скриптом только новые сообщения.
А с помощью яваксрипта передаеш их в основное окно и делаеш скроллинг.

Готового кода нету, если что непонятно - спрашивай.

Гость:
На счёт этого я понял, но вопрос в том, как при помощи JavaScripts это осуществить?

nagash:
эм... если ничего не путаю...
window.mainframe.document.write ("типа новое сообщение");
где mainframe - имя твоего главного фрейма который ты не хочешь перегружать! =)

Макс:
Гость
какой именно из этапов тебе не ясен:
[*] перегрузка фрейма для получения новых сообщений
[*] передача данных из одного фрейма в другой
[*] скроллинг
[/list]

1. решается через document.location.href
2. данные передаются примерно так
top.frames[\'hidden_frame\'].document.form.txt.value - это если к примеру та данные в скрытом фрейме вывел в textarea с именем txt. Чтобы вывести их в основном фрейме я бы использовал слои (хотя наверное можно использовать мысль nagash-а) . Для слое лучше использовать специальные библиотеки типа klayers (ссылки в FAQ-е)

3. делается с помощью либо через window.scroll хотя имхо лучше через объект TextRange метод ScrollIntoView

Естественно под всеми броузерами это работать не будет ;)

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии