Einhver seigur í Javascript, php eða Ajax?
-
Höfundur - 1+1=10
- Póstar: 1109
- Skráði sig: Lau 31. Okt 2009 21:34
- Staðsetning: Akureyri
- Hafðu samband:
- Staða: Ótengdur
Einhver seigur í Javascript, php eða Ajax?
Sælir
Er með pínulítið verkefni þar sem ég er að glíma við smá vandamál, helst á eins snyrtilegan máta og hægt er.
Til að byrja með, er með lista sem client-ar skoða. Listinn er static html kóði. Þessi listi getur breyst jafnvel nokkrum sinnum á mínútu, en misjafnt.. til einföldunar gætum við ímyndað okkur skor-lista í golfi (sem þetta verkefni er ekki um) listi sem er uppfærður yfir á server með static html-i.
Nú, jæja. Í dag læt ég browserinn einfaldlega refressa á einhverra sek-úndna intervali.. 15-30. Virkar þolanlega en langar að útfæra þetta á mun flottari hátt.
Nú.. ég veit að í Javascript er til skipunin: "Window.location.reload(forceGet)"
Hafði hugsað mér eina mögulega lausn þannig að ég mundi búa til smá service á server eins og í Php eða Ajax sem skilaði dagsetningu á þeim html sem viðkomandi client hefði, sent sem parameter í service. Nota bene, get skoðað hvenær síðan var síðast "refressuð" með breytunni document.lastModified.
Þannig gæti timer-event í javascript kallað á þennan service með parametirinum nafn html skrár og fengið til baka dagsetningu á static html skránni á server.
Nú, ef dagsetningin á html skjalinu sem geymt er á server er nýrri en document.lastmodified, þá kallar clientinn á nýja síðu með "Window.location.reload(forceGet)"
En.. mig grunar einhvern vegin að þetta sé svona frekar steinaldarleg lausn. Að það sé hreinlega til einfaldari leið að þessu..
Hvað segið þið snillilngar?
Og loks.. ef það væri ekki annað, getið þið vísað mér á spjallsíður þar sem menn eru að hjálpast að með svona á þessu leveli?
Með fyrirfram þökk
Garrinn
Er með pínulítið verkefni þar sem ég er að glíma við smá vandamál, helst á eins snyrtilegan máta og hægt er.
Til að byrja með, er með lista sem client-ar skoða. Listinn er static html kóði. Þessi listi getur breyst jafnvel nokkrum sinnum á mínútu, en misjafnt.. til einföldunar gætum við ímyndað okkur skor-lista í golfi (sem þetta verkefni er ekki um) listi sem er uppfærður yfir á server með static html-i.
Nú, jæja. Í dag læt ég browserinn einfaldlega refressa á einhverra sek-úndna intervali.. 15-30. Virkar þolanlega en langar að útfæra þetta á mun flottari hátt.
Nú.. ég veit að í Javascript er til skipunin: "Window.location.reload(forceGet)"
Hafði hugsað mér eina mögulega lausn þannig að ég mundi búa til smá service á server eins og í Php eða Ajax sem skilaði dagsetningu á þeim html sem viðkomandi client hefði, sent sem parameter í service. Nota bene, get skoðað hvenær síðan var síðast "refressuð" með breytunni document.lastModified.
Þannig gæti timer-event í javascript kallað á þennan service með parametirinum nafn html skrár og fengið til baka dagsetningu á static html skránni á server.
Nú, ef dagsetningin á html skjalinu sem geymt er á server er nýrri en document.lastmodified, þá kallar clientinn á nýja síðu með "Window.location.reload(forceGet)"
En.. mig grunar einhvern vegin að þetta sé svona frekar steinaldarleg lausn. Að það sé hreinlega til einfaldari leið að þessu..
Hvað segið þið snillilngar?
Og loks.. ef það væri ekki annað, getið þið vísað mér á spjallsíður þar sem menn eru að hjálpast að með svona á þessu leveli?
Með fyrirfram þökk
Garrinn
-
- Internetsérfræðingur
- Póstar: 6350
- Skráði sig: Mán 04. Apr 2005 11:01
- Staðsetning: https://viktor.ms
- Hafðu samband:
- Staða: Ótengdur
Re: Einhver seigur í Javascript, php eða Ajax?
Í dag eru alvöru svona lausnir, eins og Facebook, Twitter og Instagram búnar til með því að hafa gögnin á JSON formi og framreidd með Restful API sem er til dæmis hægt að útbúa með Node og Express og svo framendinn sem þú talar um gerður með Node og React.
Það væri lausn sem fengi 10/10 en það er spurning hvað þú viljir fara djúpt í þetta. Það borgar sig ekki að fara að sökkva sér niður í React fyrir svona lítið verkefni, nema að það sé sérstaklega mikill áhugi fyrir því.
Hér er smá lesefni ef þú vilt hella þér út í svoleiðis:
Útbúa gögnin með API: https://www.codementor.io/olatundegarub ... -q0sgsfhbd
Sækja gögnin með JS: https://scotch.io/tutorials/how-to-use- ... o-get-data
Sækja gögnin með React: https://medium.freecodecamp.org/how-to- ... 5c48acb1b0
Nýr vefforritunarkúrs í HÍ um svipaðar pælingar, allt opið, og fyrirlestrar á YouTube:
https://github.com/vefforritun/vef2-2018
Ég veit nú ekki hvað það eru margar fyrirspurnir á þennan lista hjá þér, en þarna gætirðu til dæmis sótt nýjan lista á 1-10 sek fresti án þess að notandinn tæki eftir því, nema að gögnin uppfærast.
Það væri lausn sem fengi 10/10 en það er spurning hvað þú viljir fara djúpt í þetta. Það borgar sig ekki að fara að sökkva sér niður í React fyrir svona lítið verkefni, nema að það sé sérstaklega mikill áhugi fyrir því.
Hér er smá lesefni ef þú vilt hella þér út í svoleiðis:
Útbúa gögnin með API: https://www.codementor.io/olatundegarub ... -q0sgsfhbd
Sækja gögnin með JS: https://scotch.io/tutorials/how-to-use- ... o-get-data
Sækja gögnin með React: https://medium.freecodecamp.org/how-to- ... 5c48acb1b0
Nýr vefforritunarkúrs í HÍ um svipaðar pælingar, allt opið, og fyrirlestrar á YouTube:
https://github.com/vefforritun/vef2-2018
Ég veit nú ekki hvað það eru margar fyrirspurnir á þennan lista hjá þér, en þarna gætirðu til dæmis sótt nýjan lista á 1-10 sek fresti án þess að notandinn tæki eftir því, nema að gögnin uppfærast.
Thinkpad P1 • i7-10875H • NVIDIA Quadro T1000 • Samsung 32GB 3200Mhz • Toshiba 1TB SSD
G Pro Wireless • WASD V2 Ch.MX brown • Arctics Pro Wireless
Alienware Ultrawide 34.1" WQHD 1900R IPS 3440 x 1440p 4ms 120Hz
EdgeRouter-X • TOUGHSwitch TS-5-POE • Unifi AP AC LITE • Raspberry Pi Unifi controller
G Pro Wireless • WASD V2 Ch.MX brown • Arctics Pro Wireless
Alienware Ultrawide 34.1" WQHD 1900R IPS 3440 x 1440p 4ms 120Hz
EdgeRouter-X • TOUGHSwitch TS-5-POE • Unifi AP AC LITE • Raspberry Pi Unifi controller
-
Höfundur - 1+1=10
- Póstar: 1109
- Skráði sig: Lau 31. Okt 2009 21:34
- Staðsetning: Akureyri
- Hafðu samband:
- Staða: Ótengdur
Re: Einhver seigur í Javascript, php eða Ajax?
Takk fyrir þetta Sallarólegur..
Var einmitt búinn að lesa smá hvernig Facebook gerir þetta.. eða réttara, hvernig menn halda að þeir geri þetta. Ekki alveg viss um að ég hafi skilið það rétt en eins og ég skildi þetta þá er notað delay á fyrirspurn frá client. Client-inn fær ekki svar fyrr en eitthvað nýtt er að gerast á Server.. virkilega flott lausn, sem þá býr til samskipta brú þarna á milli frá client til server.
Svarið sem síðan kemur er hvað á að gerast. Menn þurfa víst að lengja líf php síðurnar þannig að hún deyi ekki ef lítið er að gerast, en að því gerðu, þá á þetta að virka.
Dæmi hvernig þetta fer fram er að síðan kallar eftir skrá sem serverinn lætur ekki strax af hendi. Síðan breytist eitthvað á server og skráin sem kemur (sem dæmi xml, texta eða json) inniheldur hvaða breyting átti sér stað, síðan endurtekur clientinn beiðnina um skránna eftir smá bið sem og að serverinn neitar að láta hana af hendi.. þ.e. strax!
Þetta þykir mér nokkuð kúl leið.. reynir nákvæmlega ekkert á server, client eða net, er einskonar "listen" leið á port eins og mar gerði hér í denn..
Var einmitt búinn að lesa smá hvernig Facebook gerir þetta.. eða réttara, hvernig menn halda að þeir geri þetta. Ekki alveg viss um að ég hafi skilið það rétt en eins og ég skildi þetta þá er notað delay á fyrirspurn frá client. Client-inn fær ekki svar fyrr en eitthvað nýtt er að gerast á Server.. virkilega flott lausn, sem þá býr til samskipta brú þarna á milli frá client til server.
Svarið sem síðan kemur er hvað á að gerast. Menn þurfa víst að lengja líf php síðurnar þannig að hún deyi ekki ef lítið er að gerast, en að því gerðu, þá á þetta að virka.
Dæmi hvernig þetta fer fram er að síðan kallar eftir skrá sem serverinn lætur ekki strax af hendi. Síðan breytist eitthvað á server og skráin sem kemur (sem dæmi xml, texta eða json) inniheldur hvaða breyting átti sér stað, síðan endurtekur clientinn beiðnina um skránna eftir smá bið sem og að serverinn neitar að láta hana af hendi.. þ.e. strax!
Þetta þykir mér nokkuð kúl leið.. reynir nákvæmlega ekkert á server, client eða net, er einskonar "listen" leið á port eins og mar gerði hér í denn..
Re: Einhver seigur í Javascript, php eða Ajax?
Engin móðgun meint, en hvert er notagildið?
Þ.e. þú ert hvort eð er að kalla á vefþjónustu til að athuga hvort það sé búið að uppfæra síðuna, er þetta static HTML svona þungt/dýrt að það borgi sig að fara að útfæra einhverja lausn til að loada ekki bara síðuna upp á nýtt í hvert skipti?
Þ.e. þú ert hvort eð er að kalla á vefþjónustu til að athuga hvort það sé búið að uppfæra síðuna, er þetta static HTML svona þungt/dýrt að það borgi sig að fara að útfæra einhverja lausn til að loada ekki bara síðuna upp á nýtt í hvert skipti?
www.laptop.is
www.ferdaleit.is
www.ferdaleit.is
-
Höfundur - 1+1=10
- Póstar: 1109
- Skráði sig: Lau 31. Okt 2009 21:34
- Staðsetning: Akureyri
- Hafðu samband:
- Staða: Ótengdur
Re: Einhver seigur í Javascript, php eða Ajax?
Refress á síðu á einhverra sek fresti hefur sína ókosti. Það getur liðið kannski hálftími á milli breytinga og þá geta tíð flikk á síðu orðið frekar pirrandi.. til lengdar, sérstalega ef um bílstjóra er að ræða sem er að fylgjast með hvort eitthvað nýtt sé að gerast (sem dæmi spjald-tölvur á mælaborði)
Hinsvegar ef síðan blikkar bara þegar ný gögn hafa komið, þá horfir málið öðruvísi við..
Hinsvegar ef síðan blikkar bara þegar ný gögn hafa komið, þá horfir málið öðruvísi við..
Re: Einhver seigur í Javascript, php eða Ajax?
React og álíka pælingar eru algjört overkill fyrir svona. Það er lang einfaldast bara að skrifa smá Javascript bút, t.d nota .load() fallið í jQuery til að sækja þetta static html skjal asyncronously og uppfæra svo bara þann part af DOM-inu á síðunni. Ekkert flicker og mjög einföld lausn.
Re: Einhver seigur í Javascript, php eða Ajax?
Getur líka útfært WebSocket server ef þú vilt að client uppfærist um leið og hann fær ný gögn.
-
Höfundur - 1+1=10
- Póstar: 1109
- Skráði sig: Lau 31. Okt 2009 21:34
- Staðsetning: Akureyri
- Hafðu samband:
- Staða: Ótengdur
Re: Einhver seigur í Javascript, php eða Ajax?
Er einmitt að lesa um html5 og Websocket sem menn segja betri útfærsla en Comet og long polling..
Re: Einhver seigur í Javascript, php eða Ajax?
Þið eruð alveg að missa ykkur í vitleysu hérna. Ef þú vilt kynna þér react og einhverja veislu þá er það náttúrulega gott og blessað. En ef það eina sem þú ert að gera er að uppfæra eitt element á síðu með því sem er búið að breytast á server þá gerir þetta nákvæmlega í 5 línum af jQuery kóða.
En þú getur auðvitað farið og sett upp nútímalegt dev umhverfi með CI/CD pipeline og nokkrum gígabætum af pökkum ef þú vilt rúlla með svölu krökkunum.
En þú getur auðvitað farið og sett upp nútímalegt dev umhverfi með CI/CD pipeline og nokkrum gígabætum af pökkum ef þú vilt rúlla með svölu krökkunum.
Kóði: Velja allt
<html>
<head>
<title>Testitest</title>
</head>
<body>
<h1>Test</h1>
<div id="content">
<ul>
<li>First item!</li>
<li>Second item!</li>
</ul>
</div>
</body>
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script>
$(document).ready(function() {
setInterval(function() {
$("#content").load(" #content");
}, 10000);
});
</script>
</html>
Re: Einhver seigur í Javascript, php eða Ajax?
Veit ekki um neina íslenska síðu fyrir svona nema Vaktina en https://stackoverflow.com og þeirra heimur er það sem ég nota fyrir allt tæknitengt.Garri skrifaði:Sælir
Og loks.. ef það væri ekki annað, getið þið vísað mér á spjallsíður þar sem menn eru að hjálpast að með svona á þessu leveli?
Með fyrirfram þökk
Garrinn