Ajaxban hogyan lehet frissítést indítani egy bekövetkező esemény hatására?
Az ötletem az lenne, hogy van egy oldalam, amin a felhasználók, tudnak egymásnak üzenetet küldeni (Privát üzenet, nem Chat)
És a kérdésem az lenne, hogy hogyan oldahtó meg Ajax-ban (vagy máshogy ha van ötletetek) az, hogy ha mysql-be egy új mező kerül a messages táblába, akkor frissítsen egy divet vagy valami hasonlót, ami jelzi az üzenet érkeztét?
Időzített frissítést nem szeretnék, így ha lehet, azt hanyagoljátok!
Nem szükséges teljesen megírni, csak nagyjából egy kiindulópontra lenne szükségem, pl. egy funkcióra...
Előre is köszönöm a válaszokat!
Ajánlom neked ezt a projektet: [link]
Ez kb azt is tudja ami neked és egy hasznos kis cucc.
Ugye 2 "féle" megközelítés van a problémára:
Push/pull.
A "pull" esetén te húzod le a tartalmat a szervertől, azaz te indítasz x időnként egy kérést, hogy van-e változás. (Ez az egyszerűbb a HTTP protokoll állapotmentes felépítése miatt, de ezt elvetetted.)
A "push" esetén a szerver "tolja" a tartalmat a kliensnek.
Erre több megoldás van (java applet, flash kiegészítés), de az egyik legelterjedtebb a long polling. A lényege annyi, hogy a háttérben indul egy kérés a szerver felé, ami x időn belül csak akkor ad választ, ha változás történt. Ha nincs változás, akkor egy adott idő után (timeout) visszadja, hogy nincs válasz, akkor a kliens újra kérdést küld és várakozik.
Így a hatás olyan "mintha" azonnal történne változás.
(Ha jól rémlik az általam már linkelt megoldás is ezt használja talán.)
Esetleg ajax helyett megfontolhatod a HTML5 WebSocket-jét, talán a te problémádra egyszerűbb és elég lenne.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!