Forum Webscript.Ru
Программирование => JavaScript & JScript => Тема начата: Гость от 19 Января 2003, 00:14:51
-
Народ помогите плииииз.....
У меня такой вопрос:
Я пишу чат на PHP, и у меня возник вопрос:
Как сделать при помощи JavaScript и PHP окно каторое каждые 5 секунд выводит новые сообщения с плавным перемещением скрола вниз, суть моего вопроса в том, что я непридумаю никак как сделать так, чтобы одни и теже сообщения не грузились по несколько раз, ведь если делать обновление фрейма каждые 5 секунд, то во первых, это тормозит чат, во вторых, постоянное моргание перед глазами.
У меня была одна идея, что если каждые 5 секунд создовать PHP скриптом файл с уникальным именем, затем JavaScript скрипт читает этот файл как просто сценарий JavaScripts, после чего выводит на экран содержимое файла, а следующая функция поавно передвигает скрол вниз.
Я неуверен что мои фонтазии может осуществить JavaScript, но прошу помоч...
Деньгами я за работу расплотиться несмогу, но после написания чата, кину линк на ZIP архив если хотите! :)
Пример того, чего я хочу: http://www.august4u.ru
Заранее спосибо.
-
Идея примерно такая:
Делаеш скрытый фрейм, который перегружаеш каждые 5 секунд и в который грузиш php-скриптом только новые сообщения.
А с помощью яваксрипта передаеш их в основное окно и делаеш скроллинг.
Готового кода нету, если что непонятно - спрашивай.
-
На счёт этого я понял, но вопрос в том, как при помощи JavaScripts это осуществить?
-
эм... если ничего не путаю...
window.mainframe.document.write ("типа новое сообщение");
где mainframe - имя твоего главного фрейма который ты не хочешь перегружать! =)
-
Гость
какой именно из этапов тебе не ясен:
- перегрузка фрейма для получения новых сообщений
- передача данных из одного фрейма в другой
- скроллинг
1. решается через document.location.href
2. данные передаются примерно так
top.frames[\'hidden_frame\'].document.form.txt.value - это если к примеру та данные в скрытом фрейме вывел в textarea с именем txt. Чтобы вывести их в основном фрейме я бы использовал слои (хотя наверное можно использовать мысль nagash-а) . Для слое лучше использовать специальные библиотеки типа klayers (ссылки в FAQ-е)
3. делается с помощью либо через window.scroll хотя имхо лучше через объект TextRange метод ScrollIntoView
Естественно под всеми броузерами это работать не будет ;)
-
Тебе ж в пхпклуюе ответили?