Diskuze: Jak pravidelně aktualizovat PHP proměnou bez aktualizování celé stránky ?

JavaScript JavaScript Jak pravidelně aktualizovat PHP proměnou bez aktualizování celé stránky ?

Avatar
lukas.sei
Člen
Avatar
lukas.sei:

Čaute,
Myslím, že nadpis mluví za vše. Mám na stránce PHP proměnou $data=různé hodnoty. Ty hodny té proměnné se mění každých 30 sekund. A já potřebuji, aby se mi pokaždé, když se ta hodnota změní, aktualizovala i na mojí html stránce.
Může mi s tímto někdo poradit ?

 
Odpovědět 13. února 6:49
Avatar
Odpovídá na lukas.sei
Petr Štechmüller:

Ahoj, pokud víš, že k aktualizaci dojde jednou za 30 vteřin, tak se tu nabídli možnost posílat každých 30 vteřin AJAXovy požadavek na server. V tomhle je akorát nevýhoda, že ten požadavek se pošle az ve chvíli, kdy vytiká timer. Hrozí tedy, že na serveru se data aktualizují, ale klient se o tom dozví nejpozději za 30 sec.
Jako další možnost můžeš zkusit socket.io v Node.js. Tím by jsi mel zaručeno, ze když se data změnu na serveru, tak se hned aktualizují i u klienta. Problém je, ze by to vyžadovalo další server + věci okolo.

Nahoru Odpovědět 13. února 8:55
Pokud spolu kód a komentář nekorespondují, budou patrně oba chybné
Avatar
lukas.sei
Člen
Avatar
lukas.sei:

Aha. Každopádně já jsem v Javascriptu totální nula. Nemohl bys mi tu narychlo spíchnout nějaký kód ?
Jinak dík za odpověď.

 
Nahoru Odpovědět 13. února 11:01
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na lukas.sei
Jan Vargovský:

Websockety. Ale nvm jak je na tom PHP s podporou.

 
Nahoru Odpovědět 13. února 12:18
Avatar
Taskkill
Redaktor
Avatar
Taskkill:

Pokud nemas v JS absolutne zadne zkusenosti bude pro tebe nasazeni nodejs serveru vedle tveho php (pravdepodobne apache) dost overkill - sam to asi rychle nezvladnes, websockets na php, no zavisi jak moc si rozumis s php, eventuelne by to nemuselo tolik bolet, urcite najdes nejakej fajn projekt na githubu (pred casem jsem se dival, myslim, ze to melo slusnou kvalitu)

Nicmene je podle me naprosto dulezity zeptat se te, jakej load bude mit ta tvoje stranka? Kolik lidi tak ocekavas, ze bude pripojeno najednou, jak vykonny mas server, pripadne databazi. Otazky jsou to dulezity, protoze pokud pracujes na miniappce, ktera bude bezet na beznym webhostingu a bude ji pouzitav 5 - 10 lidi a navic nebude pozadavek na tu reakci na zmenu hodnoty naprosto okamzity, tak neni duvod se trapit socketama a nodejs ani phpckovyma socketama, proste bych tam nahodil kazdych 10 sekund ajax http request a bylo by. Muze bezet ve vlastnim workeru (vlakne), nebude ti vubec zatezovat hlavni kontext, jen cas od casu, kdyz se dostavi zmena jednoduse zahlasi hlavnimu kontextu zmenu a zase si tise vola na server jednou za 10 sekund ... no kazda situace ma svoje spravny reseni, musis se ty zamyslet jak narocny jsou pozadavky na tuhle funkci ale pokud si vyberes ajax a nebo websockety na nodejs na oboje jsou tu nejaky clanky, dozvis se co je potreba a muzes to uz od hodiny mit nasazeny.

Popremyslej a zvaz i svoje casovy moznosti, nestaci tu funkci jen zprovoznit, musis tomu rozumet pro pripad, ze se neco pokazi, nebo to budes nejak upravovat.

 
Nahoru Odpovědět 13. února 13:00
Avatar
lukas.sei
Člen
Avatar
Odpovídá na Taskkill
lukas.sei:

Co se týče zatížení serveru. Tak nic velkého nečekám. Bude to nejspíše něco kolem 5-10 lidí najednou více 100% ne.

 
Nahoru Odpovědět 13. února 13:33
Avatar
Taskkill
Redaktor
Avatar
Odpovídá na lukas.sei
Taskkill:

No tak to se ti presne hodi AJAX (a pro pripadne smooth efekt na klientovi worker, ale obejdes se bez nej) mame tu v JS sekci o nem zatim dva clanky, ve kterych se ale dozvis presne to co potrebujes ... kdyz tomu das pul hodky na studium a max hodinku na implementaci a ladeni, mas hotovo

pojmy co te zajimaji mimo ajax:
setInterval() - pomoci tohohle nastavis kazdych X sekund opakovane volani nejake tvoji funkce, to co tahle funkce vraci doporucuju ulozit do promenne ; clearInterval() - kdyby ti snad nedejboze server vratil nejakou chybu, trebas i opakovane, tak pomoci tehle funkce vycistis/vypnes to opakovane volani sve funkce, je to dobry napriklad pokud se ti klient odpoji a ty mu nechces kazdych 10 sekund dal volat offline server ; to je asi vsechno na co si ted vzpomenu

 
Nahoru Odpovědět 13. února 14:37
Avatar
lukas.sei
Člen
Avatar
Odpovídá na Taskkill
lukas.sei:

Ok podívám se na to.
Ještě otázka, jelikož jsem v JavaScriptu nikdy nedělal. Měl bych se podívat na nějaké základy ? Nebo je to +- shodné s PHP ?

 
Nahoru Odpovědět 13. února 14:54
Avatar
Taskkill
Redaktor
Avatar
Odpovídá na lukas.sei
Taskkill:

opravdu vubec nikdy nic ? hmmm tak to by ti mozna nejakej ten zaklad neuskodil ...funkce, zakladni konstrukce, promenny mame tady dobrej uvod

 
Nahoru Odpovědět 13. února 15:43
Avatar
lukas.sei
Člen
Avatar
Odpovídá na Taskkill
lukas.sei:

Ok dík. Až někdy budu mít čas, tak se na to podívám.

 
Nahoru Odpovědět 13. února 15:59
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 10.