NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

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

V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
lukas.sei
Člen
Avatar
lukas.sei:13.2.2016 6:49

Č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.2.2016 6:49
Avatar
Odpovídá na lukas.sei
Petr Štechmüller:13.2.2016 8:55

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.2.2016 8:55
Pokud spolu kód a komentář nekorespondují, budou patrně oba chybné
Avatar
lukas.sei
Člen
Avatar
lukas.sei:13.2.2016 11:01

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.2.2016 11:01
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na lukas.sei
Jan Vargovský:13.2.2016 12:18

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

 
Nahoru Odpovědět
13.2.2016 12:18
Avatar
Neaktivní uživatel:13.2.2016 13:00

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.2.2016 13:00
Neaktivní uživatelský účet
Avatar
lukas.sei
Člen
Avatar
Odpovídá na Neaktivní uživatel
lukas.sei:13.2.2016 13:33

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.2.2016 13:33
Avatar
Odpovídá na lukas.sei
Neaktivní uživatel:13.2.2016 14:37

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.2.2016 14:37
Neaktivní uživatelský účet
Avatar
lukas.sei
Člen
Avatar
Odpovídá na Neaktivní uživatel
lukas.sei:13.2.2016 14:54

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.2.2016 14:54
Avatar
Odpovídá na lukas.sei
Neaktivní uživatel:13.2.2016 15:43

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.2.2016 15:43
Neaktivní uživatelský účet
Avatar
lukas.sei
Člen
Avatar
Odpovídá na Neaktivní uživatel
lukas.sei:13.2.2016 15:59

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

 
Nahoru Odpovědět
13.2.2016 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.