чатче

18 отговора 519 прегледа
#1

чатче

Ммм такаааа . Рекох да си направя едно чатче. И изникнаха някои въпросчета:
1. Първу, понеже то ще си е чат един вид, без некви излижни екстри да си оставят съобщения, мисля да вкарвам съобщения в някаква хийп таблица /*аз такава досега не съм правил, само четох, че има таквиз*/. Та се чудех дали е добра идея? Сигурно доста от вас са правили чатове, как сте я решили тая задачка?
2. Вторият въпрос малко повече ме мъчи. Начи, как да направя така, че като някой напише нещо, да предизвикам рефреш? Хедър ли се праща към браузъра? Хмм... Сигурно де, ама да си питам. Иначе лесно, ще си направя функция, която да се активира при субмит на някакво лафче, ама .... Хммм... с хедър сигурно, ама... Кажете, който знае?

да цепиш дърва
да носиш вода


Отговор
в отговор на voyager #2

Re: чатче

refre6a stava taka
<META HTTP-EQUIV="Refresh" CONTENT="15">

pravi6 si tablica v koiato da zapisva6 koi kakvo kazal,
vzema6 poslednite niakolko reda i 4ata e gotov

C++ - waste of time for web development
Отговор
в отговор на j2ee #3

Мда, ама...

иска ми се да се рефрешва, когато някой каже нещо само. Т.е. не на 15 секунди, ами когато е необходимо само. Мда... туй е целта... Да не праим напразен трафик. Хмммм...

I want to walk into the lights

Отговор
в отговор на voyager #4

Re: Мда, ама...

Няма начин със стандартен HTML ;)

Web сървъра не знае кой в момента ползва даден сайт, докато някой потребител не направи заявка за някоя страница от сайта.
Така че единствения начин е браузера да инициира заявка към сървура и той да му върни някаква страница.

Прочети малко повече за HTTP протокола.

...
Отговор
в отговор на Цвeтaн Цвeтkoв #5

Именнноооо

май не съм обяснил правилно. Значи, Пешо си написва репликата долу и праска ентер или клика бутона, с което изпраща заявка към сървъра. Туй супер. Ама как после сървъра да уведоми /*добре де, браузърите да проверят*/, че има нещо ново. Чата на дира е направен така, ти поне със сигурност знаеш /*пък може даже и ти да си го правил */ . Идеята е, че браузъра проверява за нещо ново, например на 1 секунда, ама ако няма ново, не рефрешва страницата щото тва е лудост. Аз даже почвам да се сещам как може да стане /*имаше хедър в ХТТП, който указва кеширането - дали да се прави, т.е. казва "на страницата има нещо ново, рефрешни" или "няма нищо, ползвай кеша"*/. Може да не е точно това /*аз ако го знаех точно, нямаше да питам*/, ама знам че има такова нещо. Пък в дира щом са го направили...

"Така е то", казват тралфамадорците, когато някой умре

Отговор
в отговор на voyager #6

moje da stane sas skrit frame

i javascript

drug na4in e na java ...

C++ - waste of time for web development
Отговор
в отговор на voyager #7

Re: Именнноооо

Аз съм правил HTML чата на Дира но там се рефрешва на определен период а не когато се случи нещо на сървъра.

Може да се направи в някой скрит фрейм да се правят чести заявки който ако има нещо само тогава да рефрешват основните страници, но в Дира не е така.

Оставям на теб реализацията ;)

...
Отговор
в отговор на Цвeтaн Цвeтkoв #8

Мхм

Щом и двамата ми говорите за скрит фрейм, ще го помисля . Ама тогава явно някаква хитринка си измислил за чата на дира, щото много добре е някак си. В смисъл, че репликата се появява почти веднага, пък не си личи да се презарежда чак пък всичко на всяка секунда. Или поне не съм забелязал, хмм ... Пък може и да не ти се казва как е точно де . Спокс, шегувам се, ще го помисля наистина с тоя фрейм. Макар че почват да ми идват изродски идеи да го мамя с JS и някакъв почти празен документ, хмм... Ако взема да измисля нещо умно /*едва ли */, ще споделя. А за чата на дира, поздравления, рядко добро нещо . Както и форумите впрочем /*ся остава и тях да си ги правил ти, баси, ще ме застреляш */
А, www, мерси за идеята за Жава, ама ще пропусна. Първо, че нямам достъп до Жава сървър, за съжаление и второ... абе чатовете на Жава са доста дървени, хмм... Иначе бих се кефил да си го пиша, ама хората не обичат аплети, особено пък чат . Мхм...

I want to walk into the lights

Отговор
в отговор на Цвeтaн Цвeтkoв #9

ахаааа!

Разкрих те! Отворих пак чата на дира да видя и за малко щях да се върна тука и да разправям, че си ме метнал, когато го загрях. Понеже като напиша нещо, и прасна ентер, веднага ми се рефрешва, съм се заблудил, че се рефрешва за всички. А всъщност, явно като напиша реплика, се изпраща заявка за рефреш при мене, затова и излиза веднага . А освен това явно имаш рефреш на 10-тина секунди, което пък върши работа, ако не пиша, а само чета другите. Супер хитро, бравос!
Ей сега ми светна наистина, точно така ще го направя :D Мерси и на двамата за помощта

А за хийп таблиците може би ще питам в бази данни. Мда

The things are always changing, I feel that it`s allright

Редактирано от voyager на

Отговор
в отговор на Цвeтaн Цвeтkoв #10

Re: Мда, ама...

Мисля, че има начин да се направи и без рефреш, (без джава). Идеи?

---
"Внимавай какво правиш през живота си, защото смъртта е вечна и не знаеш какво те очаква ..."
Отговор
в отговор на atakmim #11

ама кажи тогавааа

недей да гаднееш така . Осветли народа . Мда :)
Ти нещо се беше загубил напоследък, гаден отпускар ли беше? .

Кин Дза Дза

Отговор
в отговор на voyager #12

Re: ахаааа!

Нямаш грижи с HEAP таблиците, чата на дира работи с такива, разбира се само съобщенията и още няколко неща които не им трявба да се сторват пермнентно ;)))

нали се сещаш какво става ако спре тока ;)

...
Отговор
в отговор на voyager #13

Re: Мхмmmm

Ami az go napravih sas skrit frame koito izmakva ot DB saobshteniqta
(i gi slagam v edin javascript masiv v frameset-a)
ama kato gi izmakna ne seshtam za na4in da pokaja novote saobshteniq bez da si refreshna osnovniq frejm , i kogato go refreshna se polu4ava mnooogo gadno premigvane na frejma. Pri nestcape ne e taka (ne premigva ).
Ako nqkoi se seshta kak da stane .... da spodeli ako obi4a

Отговор
в отговор на newbie #14

Re: Мхмmmm

a s document.write() probval li si? Az ne sn probval, pyk sega nqmam vreme, ama vse se 4udq dali nqma da stane? m?

Pathfinder - looking for the fruits of life

Отговор
в отговор на voyager #15

Re: Мхмmmm

s document.write() shte mi izpe4ata tova koeto sum mu podal ot formata i nqma da zapazi prednite neshta :((
Zna4i ideqta e slednata:
Имам 3 фрейма.Най-горния е невидим и той през N сек. ми вади новите съобщения от базата данни . Като ги извади ги слага в един JavaScript масив който е в фреймесет-а и рефрешва средния фрейм. Средния фрейм има само 2 реда колкото да извика javascript функцията която печата масива със съобщенията.
Долния фрейм ми е само за въвеждане на съобщения.
Проблема е че при рефреша на средния фрейм се получава тва гадни премигване (щото информация изчезва и пак се появява). В Дира не е така и се чудя как са решили проблема.

Ако се сетиш кажи че съм на зор :)

Отговор
в отговор на newbie #16

Re: Мхмmmm

мисля, че ЦЦ може да ти отговори и без да се сеща . Въпроса е дали ще каже

дао дъ дзин

Отговор
в отговор на voyager #17

ЦЦ please ...

ЦЦ ,
Моля те сподели


Отговор
в отговор на newbie #18

Re: ЦЦ please ...

Няма нищо специално, използва си се рефреш,
не знам защо сте останали с впечатление че не мига

при мен си мига като за световно :)

...
Отговор
в отговор на Цвeтaн Цвeтkoв #19

Re: ЦЦ please ...

Ами имам впредвид че като напишеш нещо съобщението излиза най-отгоре без да се рефрешва целия фрейм (или поне така ми се вижда).
При мен когато се рефрешне фрейма със съобщенията първи изчезват всички мнения от фрейма и се появяват пак заедно с новите - това е неприятното.
По някакъв начин съобщението се добавя динамиччно към съсдържанието на фрейма(май :) )
В Дира не е така.Пробвах с IE 6 NS6.2 и всичко е ОК

Отговор