Kirjoittaja Aihe: Ajax reload  (Luettu 3235 kertaa)

Mistofelees

  • Käyttäjä
  • Viestejä: 641
    • Profiili
Ajax reload
« : 05.02.23 - klo:15.39 »
Kuinka saisi ajaxia sisältävän sivun pakotettua lataamaan datat selaimelle serveriltä, eikä selaimen cachesta ?

Nettisivu pitää ladata ja käynnistää serveriltä, koska sivun sisältämät JS-scriptit pitää käynnistää uusilla serverillä olevilla lähtöarvoilla.
Tämä pitäisi jotenkin kirjoittaa koodiin, koska suuri osa käyttäjistä ei osaa Ctrl-F5-temppua, joka ei ole edes mahdollinen Androidissa.

Nyt reload kaivaa jatkuvasti vanhan sivun selaimen muistista, eikä serveriltä, jonne ne scriptit ja datat on talletettu file.js-tiedostoon.

Sivulla on 12 "input time" -kenttää ja kolme "input text" -kenttää, joita muokataan ja data talletetaan heti serverille php-scriptillä tiedostoon file.js. Data tallettuu, kuten pitääkin.

Tätä file.js kutsutaan kyseisellä html-sivulla scriptinä joka tuo arvot muuttujina muille JS-funktioille.

file.fs sisältö:
Z01='05:12'
Z02='09:33'
jne

kamara

  • Käyttäjä
  • Viestejä: 2944
    • Profiili
Vs: Ajax reload
« Vastaus #1 : 05.02.23 - klo:20.00 »
Kuinka saisi ajaxia sisältävän sivun pakotettua lataamaan datat selaimelle serveriltä, eikä selaimen cachesta ?

Onnistuisikohan se, että laittaisit get-muuttujaan aikaleiman tai järjestysnumeron, jotta sivu olisi uusi selaimelle.

nm

  • Käyttäjä
  • Viestejä: 16232
    • Profiili
Vs: Ajax reload
« Vastaus #2 : 05.02.23 - klo:20.36 »
Pelkällä asiakaspuolen Javascriptillä välimuistin voi välttää lisäämällä linkin parametriksi lataushetken kellonajan tai satunnaisluvun. Tällöin välimuisti ei siis ole käytössä silloinkaan, kun tiedosto ei ole muuttunut, vaan selain lataa sen aina uudelleen. Katso esimerkkejä vaikkapa tämän Stack Overflow -kysymyksen vastauksista:
https://stackoverflow.com/questions/11467873/how-to-append-timestamp-to-the-javascript-file-in-script-tag-url-to-avoid-cach

Vastaavaan tulokseen pääsee myös asettamalla HTTP-headereissä välimuistin pois päältä. Tämä vaatii muutoksia HTTP-palvelimen konfiguraatioon. Esimerkkejä:
https://stackoverflow.com/a/2068407

Hieman elegantimpi ratkaisu on lisätä latauspyyntöön parametrina tiedoston oikea viimeisin muutosaika tai versionumero, kuten kamara neuvoi. Silloin selain voi käyttää välimuistia aina kun linkki pysyy samana, mutta lataa sen uudelleen, kun tiedostoa on muutettu. Tämä hoituu helposti esimerkiksi php:n avulla. Vinkkejä:
https://stackoverflow.com/questions/118884/how-to-force-browsers-to-reload-cached-css-and-js-files


Toisaalta koko ongelma olisi vältettävissä käyttämällä jotain modernia web-frameworkia tai edes JavaScriptin fetch()-rajapintaa.
« Viimeksi muokattu: 05.02.23 - klo:20.43 kirjoittanut nm »

Mistofelees

  • Käyttäjä
  • Viestejä: 641
    • Profiili
Vs: Ajax reload
« Vastaus #3 : 05.02.23 - klo:21.15 »
Kiitos.
Pitää tutkia nuo stackoverflown temput.
Serverin asetuksia en kyllä välitä lähteä muuttamaan, kun ne kerrankin (taas kerran) on saanut kohdalleen.

Tilapäisesti pistin sivulle buttonin, jotta sivua pystyy käyttämään pari päivää:
Koodia: [Valitse]
<button onClick="history.go(0); "style="height:70px;width:100px">
« Viimeksi muokattu: 05.02.23 - klo:21.34 kirjoittanut Mistofelees »

Mistofelees

  • Käyttäjä
  • Viestejä: 641
    • Profiili
Vs: Ajax reload
« Vastaus #4 : 11.02.23 - klo:11.59 »
Tämä sivu antoi lopullisen ratkaisun (ainakin tähän mennessä) :
https://stackoverflow.com/questions/49547/how-do-we-control-web-page-caching-across-all-browsers

Ongelma esiintyi nimenomaan yhdellä Xiaomi 11 Lite 5G kännykällä, jossa oli MIUI 14 käyttöliittymä.
Xiaomi on tullut tunnetuksi siitä, että he nyppivät koko Android-järjestelmän täydellisesti läpi ja tekevät omat virityksensä.
Kännykkä sinänsä on toiminut hyvin, mutta monet järjestelyt toimivat poikkeavasti.

Miksei kukaan jo tuo kunnollista Linux-kännykkää markkinoille ?
Alkaa mennä hermo näiden Androidien kanssa.

LISÄYS MYÖHEMMIN:
Ratkaisu (ilmeisesti) löytyi. html-sivulla oli kolme < script -kutsua:
< script src="http://192.168.0.240/rele/selitykset.js?V"= Date.now()>< /script>
< script src="http://192.168.0.240/rele/kello.js?V"= Date.now()>< /script>
Kun yhdistelin funktioita samaan pakettiin ja muutin muuttujien lukemista serverin levyltä, lähti homma toimimaan.
Näyttää siltä, että Android lataa vain yhden luotettavasti ja toisen miten sattuu.

Tuon "V=DateNow()" tilalla voi käyttää "V=". Selain näyttää lataavan satunnaista roskaa tuon perää dataksi, jolloin saadaa kylliksi satunnaisuutta kotikäyttöön.
« Viimeksi muokattu: 05.03.23 - klo:00.20 kirjoittanut Mistofelees »

kamara

  • Käyttäjä
  • Viestejä: 2944
    • Profiili
Vs: Ajax reload
« Vastaus #5 : 11.02.23 - klo:14.00 »
Miksei kukaan jo tuo kunnollista Linux-kännykkää markkinoille ?
Alkaa mennä hermo näiden Androidien kanssa.

Venäjällä taitaa olla, joka perustuu varhaisesti Nokian Maemoon, mutta en ostaisi sitä.

Mistofelees

  • Käyttäjä
  • Viestejä: 641
    • Profiili
Vs: Ajax reload
« Vastaus #6 : 11.02.23 - klo:19.12 »
Tuon venäläisen lisäksi on markkinoilla Onephpne (?), mutta käsittääkseni se on vielä aika pahasti vaiheessa.
Sailfishin saa joihinkin Sonyn vehkeisiin.

Varmaan suurin este Linuxin leviämiselle ovat nenä ruudussa pelaavat pikkukakarat ja kaikesta epäluuloiset tätit.


nm

  • Käyttäjä
  • Viestejä: 16232
    • Profiili
Vs: Ajax reload
« Vastaus #7 : 12.02.23 - klo:00.21 »
Tuon venäläisen lisäksi on markkinoilla Onephpne (?), mutta käsittääkseni se on vielä aika pahasti vaiheessa.

Tarkoitat varmaan Pinephonea? Se on melko pitkälle viety kokeilu, ja laitteella voi ajaa useita vaihtoehtoisia puhelimiin suunnattuja Linux-jakeluita. Toisaalta rauta on kuitenkin jo vanhentunutta ja melko heikkotasoista verrattuna saman hintaluokan Android-puhelimiin.

Lsäksi saatavilla on Purism Librem 5, joka on tietoturvaan ja avoimeen koodiin erikoistunut Linux-puhelin. Sen hinta on vielä korkeampi suhteessa laitteen ominaisuuksiin ja suorituskykyyn, mutta vastineeksi saa täysin avoimilla ajureilla ja Debian-pohjaisella PureOS:llä toimivan puhelimen. Käyttökokemus toki on melko alkeellinen verrattuna nykypäivän Androidiin ja iOS:ään. Yhteisön apu luultavasti kelpaisi Purismillekin. Hintataso vain on sen verran kova, että innokkaiden käyttäjien ja kehittäjien määrä voi jäädä aika pieneksi.

Tässä eräs keskimääräistä positiivisempi juttu Librem 5:stä:  https://incoherency.co.uk/blog/stories/librem5-first-impressions.html

Varmaan suurin este Linuxin leviämiselle ovat nenä ruudussa pelaavat pikkukakarat ja kaikesta epäluuloiset tätit.

Nuorilla voi olla jotain vaikutusta tarjontaan, mutta eniten rahaa älylaitteisiin ja sovelluksiin taitaa kuitenkin irrota keskiluokkaisten länsimaisten miesten luottokorteilta.

Älypuhelinmarkkinoille on erittäin vaikea tuoda uusia vaihtoehtoja, kuten Microsoftkin joutui toteamaan. Taustalla toimivan käyttöjärjestelmän tekninen toteutus ja filosofia eivät kiinnosta käyttäjiä, vaan ainoastaan sovellusten, käyttöliittymän ja laitteiston käyttökokemus merkitsee jotain. Lisäksi sovellustarjonnan on oltava alusta lähtien hyvin laaja, eli käytännössä nykytilanteessa tulokkaan on tuettava Android-sovelluksia ja Google Playtä täysin saumattomasti. Pinephonen tapaisten alustojen ja erilaisten Linux-puhelinprojektien on mahdollista menestyä marginaalissa, mutta en pidä todennäköisenä, että ne tulisivat saavuttamaan merkittävää markkinaosuutta.

Veikkaan, että nykyinen Applen ja Googlen hallitsema mobiilikäyttöjärjestelmien markkina tulee muuttumaan vasta seuraavan paradigman muutoksen myötä – eli esimerkiksi siirryttäessä AR-laseihin – jos silloinkaan.
« Viimeksi muokattu: 12.02.23 - klo:00.41 kirjoittanut nm »

Mistofelees

  • Käyttäjä
  • Viestejä: 641
    • Profiili
Vs: Ajax reload
« Vastaus #8 : 13.02.23 - klo:18.37 »
AR lasit ovat sen verran kalliit kehittää, että tuotteet tulevat varmasti isoilta yrityksiltä

qwertyy

  • Käyttäjä
  • Viestejä: 5661
    • Profiili
Vs: Ajax reload
« Vastaus #9 : 13.02.23 - klo:19.06 »
Miksei kukaan jo tuo kunnollista Linux-kännykkää markkinoille ?
Alkaa mennä hermo näiden Androidien kanssa.
Ongelma joka tappoi Windows mobilen. Sovellukset.

En omistanut, mutta kokelin paria eri loppupään Windows puhelinta ja myönnän, että olin heti myyty siihen kuinka se toimi ja kuinka sulavasti se pyöri myös heikompitehoisilla laitteilla. Jokin aika sitten kommentoin jotain YT videota ja kirjoitin tuon ja että olisin ollut valmis vaihtamaan välittömästi, mutta silloin olisin kaivannut muutamaa ns.mainstream pikaviestintä ja vielä tärkeämmin pankkisovellusta. Niitä ei kerennyt tulla, ennen kuin Elop löy naulan arkkuun. Kommenttini sai lyhyessä ajassa yllätävän ison tykkäysmäärän ja komppaavia kommentteja.

Jälkimmäinen pätee edelleen. Vaikka olen aina ollut kiinnostunut kokeilemaan vaihtoehtoja, niin edes "täydellinen" Linux puhelin ei minua voittaisi jos tiettyä softaa ei löydy.

Minusta mikkisofta oli lähellä päästä peliin isosti. He ryssi tärkeimmän ja eivät saaneet houkuteltua sovelluskehittäjiä alustalleen. Moni vaikuttaa olevan samoilla linjoilla. Henk.kohtaisesti olen sitä mieltä, että harmi, koska kilpailu on aina hyvästä.

Mistofelees

  • Käyttäjä
  • Viestejä: 641
    • Profiili
Vs: Ajax reload
« Vastaus #10 : 05.03.23 - klo:00.00 »
Onko jotain, mitä M$ ei olisi ryssinyt ?
No, MSDOS oli hyvä, mutta ei sekään ollut heidän tekemänsä.
Sama kommentti QB4.5:stä.

Mistofelees

  • Käyttäjä
  • Viestejä: 641
    • Profiili
Vs: Ajax reload
« Vastaus #11 : 05.03.23 - klo:00.28 »
Miksei kukaan jo tuo kunnollista Linux-kännykkää markkinoille ?
Alkaa mennä hermo näiden Androidien kanssa.
Ongelma joka tappoi Windows mobilen. Sovellukset.

Minulle riittäisi sekin, että Androidissa erotettaisiin BIOS, laiteajurit, käyttöjärjestelmä ja bloatware omiksi osikseen, jotka voisi päivittää toisista riippumatta. Tällöin päästäisiin siihen, että mihin tahansa lautaan voitaisiin päivittää käyttöjärjestelmä ja bloatware kajoamatta laiteajureihin ja BIOSiin.
Tämä vaatisi selkeän rajapinnan luomisen tasojen väliin. Jos tämä on onnistunut verkkopinossa, niin luulisi sen onnistuvan tässäkin.
Olen näistä rajapinnoista joutunut töissänikin taistelemaan.
Niin kauan, kuin rajapinnat ovat rikki, on R&D toivotonta edestakaisin soutamista.