Php + javascript alkalmazasaval megoldhato hogy egy mysqlben levo adatot oldalbetoltese utan megvaltoztatva az adat megvaltoztatasa pillanataban kiirja?
Megoldható.
Ha tényleg azonnal kell, akkor az kicsit macerás, de 2 megoldás is van:
Amennyiben a szerver engedi és van megfelelő kiegészítés akkor ott az Ajax push. (Keresgélj neten rá, hogy hogyan lehet.)
Ha a szerverhez minimális a hozzáférésed, vagyis nem tudsz modult telepíteni stb.. akkor is ott van az úgynevezett ajax long poll.
Ennek a használatának megkönnyítésére jött létre ez a project: [link]
Persze ezeken kívül még ott van a html5 socket használat, vagy a flash-es megoldás is.
Ha pár sec. késés megengedhető, akkor a legegyszerűbb pár másodpercenként ajax-al hívogatni egy php-t ami ellenőrzi, hogy történt-e változás. (Költséges és lassú, de cserébe halál egyszerű.)
Meg, de csak akkor, ha valami szerver oldalon figyeli a mysql adatot, kliens oldalon meg egy javascript kérdezget folyton ajax hívásokkal.
Tehát pl.
1. Betölt az oldal mysql-ben van "alma" érték, ezt írja ki
2. Elindul egy javascript, ami pl. minden másodpercben ajax hívással lekér egy PHP-t.
3. Az a PHP visszaadja a mysql értéket
4. A javascript kiírja az ajax hívással kapott értéket.
Ezáltal ha az "alma" megváltozik "körte"-re, akkor az lesz kiírva, max 1mp (vagy amennyi eltelik két ajax hívás közt) késleltetéssel.
"valami szerver oldalon figyeli a mysql adatot, kliens oldalon meg egy javascript kérdezget folyton ajax hívásokkal"
Ennek elkerülésére írtam pont 2 technikát is az ajax pusht és az ajax long pollt. :)
Ez utóbbi hasonlít a te általad (és egy mondatban általam) említett megoldáshoz azzal a különbséggel, hogy nem másodpercenként kérdezi le, hanem elindít egy lekérdezést és egészen addig vár a válaszra amíg nem timeoutol, vagy nem történik változás és tér vissza értékkel.
Ha timeout van (vagy kap vissza választ), akkor elindít egy újabb kérést és várakozik a válaszra.
Ez jelentősen csökkenti a terheltséget és jóval kevesebb kérést, ami által kisebb adatforgalmat eredményez. :)
Igazad van, jobb a timeout-os verzió, mert aszinkron ajax hívásnál nem akasztja meg az oldalt.
Az ajax push technikában nem vagyok otthon, én azért nem írtam.
Amúgy mikor írtam a válaszom, a tiédet még nem láttam. :)
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!