![]() |
Как давно я не был на этом форуме. Всем привет кого знаю.
Вопрос по php. Начал я писать чат, вроде не чего, нормально получается, но в последнее время стало раздражать этот «рефреш» для обновления сообщений, я раньше писал так: <meta http-equiv="refresh" content="8"; charset=windows-1251"> (это окно где все сообщение, или просто в народе, ОБЩАГ). Но когда много сообшений, или смайликов, то это уже отстой полнейший. Знаю есть чаты которые показывают новые сообщений без обновление страницы. Так вот, КАК ЭТО СДЕЛАТЬ??? |
сложно, http://php.spb.ru/chat/
|
ivank
Блин тоже мне помог, я этот чат на пхп груп уже год назад скачивал, он мне не нравиться, и хочется СВОЙ, родной сделать, что бы каждую фифочку знать. Темболее что там нельзя удалить эту шапку с ссылкой на их сайт. Я тут долго размышлял, как это сделать. НЕ как же не возможно принимать сообщение без обновления. После долгих размышлений я вроде догадался как это сделать. Существует невидимый фрейм, который все время обновляется, или хотя бы раз в 5 секунд. В этом фрейме есть скрипт. Если приходит новое сообщение (или вообще что приходит), он его кидает в общаг. Не знаю как на других чатая, я попробую пойти по этому пути. Если кто знает ТОЧНО как это сделать то не в падлу напишите. |
Если я не ошибаюсь, такое можно реализовать только в виде Java-апплета. С помощью Perl или PHP ничего такого не получится (максимум, что можно сделать - прописать соответствующий Cache-control, чтобы смайлики грузились один раз, а потом - только быстро обновлялись, но и то - вряд ли), разве что сработает ваша идея про невидимый frame, но возникнет другая проблема: этот чат не будет работать при отключенных Java-Scriptах.
|
Уже начал писать скрипт, только столкнулся с проблемой (точнее проблемы нет, просто я не знаю как это сделать).
Существует два фрейма Chat – где показываться все сообщений SAY – постоянно обновляемый фрейм. Пишу так (фрейм say): <script language="JavaScript" type="text/javascript"> function say_sc(text) {parent.chat.document += text} say_sc(‘<? Php $new_talk ?>’) </script> никаких результатов (конечно никаких, неправильно написал, плохо знаю скрипт). Какой объект надо создать что бы его невидно было, или …………………. Ну поняли??, как сделать что бы функция say_sc() писала новый сообщения в фрейме chat. XXXX Pro На счет отключения скриптов. К сожалению УЖЕ поставил ограничитель. В чат могут зайти только с брайзером MSIE, и как бы опера не подделывалась под IE её не пускаю. Хотя я помню есть функция в PHP которая выясняет возможности брайзера. [s]Исправлено: LEXX2002, 19:59 5-04-2003[/s] |
конечно, никаких...
parent.chat.document += text - это чушь ;) parent.chat.document.write(text) - вот так надо бы... вот пример, у меня работает... <iframe name="chat"></iframe> <input id=txt type="text"> <input type=button value="Послать" onclick="chat.document.write(txt.value)"> А вообще, это не совсем корректно...как думаешь убирать просроченные сообщения? Вообще есть несколько способов писать в текст документа... я бы лично действовал через свойства innerHTML/innerText - просто и наглядно... [s]Исправлено: Sulako, 21:51 5-04-2003[/s] |
LEXX2002
Я ссылку дал как на пример реализации непрерывного соединения. Это идеологичесски правильнее чем делать со скрытым фрецмом. |
Так вот я и спрашиваю КАК сделать это «непрерывное соединение», как обновить страницу без обновления ( теперь надо осмыслить чего написал :-) ), Я то не знаю как это реализовано в чатах. Пришлось своё придумывать.
Я сегодня ещё раз поставил этот чат, который с примера , так вот там все таки есть какой то рефреш. На счёт старых сообщений, в примере это проблема решена очень просто, ОНА НЕ КАК НЕ РЕШЕНА. На протяжении всей сессии все сообщения видны. И ещё, что такое innerHTML/innerText . Некогда о таком не слышал, это что?? язык, технология?? Что это и с чем это едят. |
innerHTML и innerText - это такие свойства элементов HTML в JavaScript, означают текст внутри элемента.
например, body.innerHTML содержит весь текст документа, который внутри тега <body></body>, и с ним можно вытворять что угодно ;) Разница между innerHTML и innerText в том, что при использовании innerHTML можно добавлять кроме текста еще и теги HTML. |
Извиняюсь за долгую задержку, уезжал,
Sulako parent.chat.document.write(text) – работает, только проблема, все что было до этого в фрейме chat удаляются, а мне этого не надо, у меня там ещё скрипт, как сделать что бы дописывало, а не перезаписывало. И еще, можно что бы это командой писать в отведённый для неё место а не в конец документа, так как когда она пишет в конец документа, а там возникают проблемы со скроллингом. |
http://www.x7chat.com супер новейший чат
|
Ну что сделал чат то? А то ты принципиально не в ту сторону движесся! Механизм реализован по другому совсем! Если интересно я тебе расскажу как magway2030@mail.ru!:gigi:
|
Да вроде уже сам додумался как делается это, скриптом открывается сокет, тем самым создается непрерывное соединение, но чат потерпел крах по очень простой причине, на бесплатных хостингах в каждый фрейм помещается банер что портит скрипт и конечно внешний вид :( а денежек на платный хостинг нет. В локалке работАЛ простой чат на рефреше, там то нет проблем со скоростью и некто кроме своих не видит так что над функциональностью не работал. А вообще IRC рулит, html чаты меня в последнее время раздражают.
|
Время: 13:28. |
Время: 13:28.
© OSzone.net 2001-