Síða 1 af 1

Einhver seigur í Javascript, php eða Ajax?

Sent: Lau 28. Apr 2018 20:18
af Garri
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

Re: Einhver seigur í Javascript, php eða Ajax?

Sent: Lau 28. Apr 2018 22:00
af Viktor
Í 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.

Re: Einhver seigur í Javascript, php eða Ajax?

Sent: Lau 28. Apr 2018 22:45
af Garri
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..

Re: Einhver seigur í Javascript, php eða Ajax?

Sent: Lau 28. Apr 2018 23:38
af Klemmi
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? :o

Re: Einhver seigur í Javascript, php eða Ajax?

Sent: Lau 28. Apr 2018 23:45
af Garri
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ð..

Re: Einhver seigur í Javascript, php eða Ajax?

Sent: Sun 29. Apr 2018 09:03
af hagur
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?

Sent: Sun 29. Apr 2018 20:46
af JohnnyX
Getur líka útfært WebSocket server ef þú vilt að client uppfærist um leið og hann fær ný gögn.

Re: Einhver seigur í Javascript, php eða Ajax?

Sent: Sun 29. Apr 2018 21:06
af Garri
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?

Sent: Mið 02. Maí 2018 14:01
af dori
Þ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.

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?

Sent: Fim 03. Maí 2018 09:35
af ojs
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


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.