Ajax chat - demó
méret: 5,58 kbyte, sor: 167 (3 fájl)
Kb 6 óra volt, mire elkészült. A próbálgatás vette el az időt, hiszen nem tudtam, hogy kell egy ilyet csinálni.
Egy kis töprengés után rájöttem,
hogy ha nem fut a szerveren semmilyen program (mint ahogy a facebook csinálja), nincs más opció, egyféleképpen lehet.
Összetevők:
- egy egyszerű design (html integrált css-sel)
- script.js (javascript ami kezel minden eseményt)
- server.php (fogadja a kérelmet és visszapasszolja a chat szövegét) + log file!
Működés folyamata: Betöltődik a honlap,
lefut a javascript, ami azonnal meghívja az ajax lekérdezést "üresen", így a server.php nem fogja keresni a http-ben az elküldött üzenetünket, csak reagál.
Beírjuk a szöveget, most az ajax már küld stringet a szervernek, ami először eltárolja, majd visszaolvassa az egészet. Így egyszerűbb.
HTTP request gondok: Mint említettem, a facebook chat fala úgy működik, hogy a kliens elküldi a kérelmet, és vár. Vár vár vár. Egyszer csak amikor megváltozik a chat tartalma a túloldalon (valaki írt), a http kérelem lefut, és újra vár a következőre.
Így a kliens gépére marad a várakozás és nem a szervert terheli. Ezzel szemben minden fapados próbálkozás, beleértve az
Ajax IM-et, állandóan x másodpercenként kér, kap. Ami nem teljesítményigényes, de lefoglalja a szervert.
Probléma #1: a log.txt egy idő után rettenetesen nagy lesz és a szerver belassulhat miatta.
Megoldás #1: a php "a+" hozzáféréssel dolgozik, ergo rögtön a végéről kezdi a műveleteit. 3 gigabájtnyi szöveg van a fájl elején. Semmiség.