Einhver seigur í Javascript, php eða Ajax?

Forrit og forritun.

Höfundur
Garri
1+1=10
Póstar: 1102
Skráði sig: Lau 31. Okt 2009 21:34
Reputation: 3
Staðsetning: Akureyri
Hafðu samband:
Staða: Ótengdur

Einhver seigur í Javascript, php eða Ajax?

Pósturaf Garri » Lau 28. Apr 2018 20:18

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



Skjámynd

Sallarólegur
Internetsérfræðingur
Póstar: 5105
Skráði sig: Mán 04. Apr 2005 11:01
Reputation: 207
Staðsetning: >>
Staða: Ótengdur

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

Pósturaf Sallarólegur » Lau 28. Apr 2018 22:00

Í 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.


BenQ XL2720 144Hz † ASRock Z270 Pro4 † i5-7600K † GTX 980Ti 6GB † G.Skill 16GB 16GB 2400Mhz † CX600 † Apex M500 MX Blue † Rival 300 † CM Silencio 352 † NF-S12A @ CM 212 Evo

Macbook Pro 15" † Touchbar 2016 † Space Gray † 256GB

FreeNAS † Plex & Transmission † P35 Neo2-FR † Intel Q6600 † 8GB DDR2 † 2TB HDD

EdgeRouter ERLite‑3 † 2x Unifi AP AC LITE † TP Link TL-SG105E 5-Port Gigabit


Höfundur
Garri
1+1=10
Póstar: 1102
Skráði sig: Lau 31. Okt 2009 21:34
Reputation: 3
Staðsetning: Akureyri
Hafðu samband:
Staða: Ótengdur

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

Pósturaf Garri » Lau 28. Apr 2018 22:45

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..



Skjámynd

Klemmi
Stjórnandi
Póstar: 3295
Skráði sig: Fim 10. Apr 2003 12:16
Reputation: 472
Staða: Ótengdur

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

Pósturaf Klemmi » Lau 28. Apr 2018 23:38

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


www.laptop.is
www.ferdaleit.is


Höfundur
Garri
1+1=10
Póstar: 1102
Skráði sig: Lau 31. Okt 2009 21:34
Reputation: 3
Staðsetning: Akureyri
Hafðu samband:
Staða: Ótengdur

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

Pósturaf Garri » Lau 28. Apr 2018 23:45

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ð..



Skjámynd

hagur
Vaktari
Póstar: 2530
Skráði sig: Mið 17. Des 2003 16:11
Reputation: 191
Hafðu samband:
Staða: Tengdur

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

Pósturaf hagur » Sun 29. Apr 2018 09:03

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.




JohnnyX
/dev/null
Póstar: 1422
Skráði sig: Sun 04. Jan 2009 18:25
Reputation: 12
Staða: Ótengdur

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

Pósturaf JohnnyX » Sun 29. Apr 2018 20:46

Getur líka útfært WebSocket server ef þú vilt að client uppfærist um leið og hann fær ný gögn.




Höfundur
Garri
1+1=10
Póstar: 1102
Skráði sig: Lau 31. Okt 2009 21:34
Reputation: 3
Staðsetning: Akureyri
Hafðu samband:
Staða: Ótengdur

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

Pósturaf Garri » Sun 29. Apr 2018 21:06

Er einmitt að lesa um html5 og Websocket sem menn segja betri útfærsla en Comet og long polling..



Skjámynd

dori
Besserwisser
Póstar: 3436
Skráði sig: Fim 12. Feb 2009 10:46
Reputation: 92
Staða: Ótengdur

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

Pósturaf dori » Mið 02. Maí 2018 14:01

Þ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>




ojs
Fiktari
Póstar: 59
Skráði sig: Lau 11. Mar 2017 21:49
Reputation: 13
Staða: Ótengdur

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

Pósturaf ojs » Fim 03. Maí 2018 09:35

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.