Pages: [1]   Go Down
Print
Author Topic: Reload file di testo  (Read 2483 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
Gam
Apprendista Forumista
**
Offline Offline

Posts: 385



« on: 17-05-2012, 10:56:26 »

Salve,
ho il seguente problema:

Ho una pagina web in cui è presente uno script javascript che carica da un file .txt delle coordinate geografiche che visualizza poi su una mappa (OpenStreetMap).

Il file .txt può essere aggiornato dall'utente scrivendoci dentro nuove coordinate.. Il problema è che quando si apporta una modifica al file, lo stesso non viene ricaricato con i dati aggiornati sulla mappa, nemmeno facendo un window.location.reload()  o un semplice aggiorna della pagina.

Mi sono accorto però che chiudendo e riaprendo il browser e ritornando sulla pagina, il file viene caricato con le nuove info aggiornte.. quindi credo che sia un problema di cache da svuotare.

Conoscete un qualche metodo per fare questa operazione, senza chiudere il browser e riaprirlo per ricaricare correttamente questo file??

Grazie.
Logged
ɹǝǝuıƃuǝsɹǝʌǝɹ
Administrator
God of the Forum
*****
Offline Offline

Gender: Male
Posts: 4.474


Più grande è la lotta, e più è glorioso il trionfo


WWW
« Reply #1 on: 17-05-2012, 12:54:41 »

Come fai a caricare un file di testo (.txt) in JavaScript?
Logged

La grande marcia della distruzione mentale proseguirà. Tutto verrà negato. Tutto diventerà un credo. È un atteggiamento ragionevole negare l'esistenza delle pietre sulla strada; sarà un dogma religioso affermarla. È una tesi razionale pensare di vivere tutti in un sogno; sarà un esempio di saggezza mistica affermare che siamo tutti svegli. Accenderemo fuochi per testimoniare che due più due fa quattro. Sguaineremo spade per dimostrare che le foglie sono verdi in estate. Non ci resterà quindi che difendere non solo le incredibili virtù e saggezze della vita umana, ma qualcosa di ancora più incredibile: questo immenso, impossibile universo che ci guarda dritto negli occhi. Combatteremo per i prodigi visibili come se fossero invisibili. Guarderemo l'erba e i cieli impossibili con uno strano coraggio. Saremo tra coloro che hanno visto eppure hanno creduto.

In tutto, amare e servire.

  
                            ن                           
I can deal with ads,
I can deal with buffer,
but when ads buffer
I suffer...

...nutrimi, o Signore, "con il pane delle lacrime; dammi, nelle lacrime, copiosa bevanda...

   YouTube 9GAG    anobii  S  Steam T.B.o.I. Wiki [univ] Lezioni private  ʼ  Albo d'Ateneo Unicode 3.0.1
Usa "Search" prima di aprire un post - Scrivi sempre nella sezione giusta - Non spammare - Rispetta gli altri utenti - E ricorda di seguire il Regolamento
Gam
Apprendista Forumista
**
Offline Offline

Posts: 385



« Reply #2 on: 17-05-2012, 14:18:07 »

ho risolto il problema in questo modo:

le pagine che gestisco sono pagine .jsp, quindi ho inserito questi tag ad inizio pagina:

<% response.setHeader("Pragma","no-cache");%>
<% response.setHeader("Cache-Control","no-store");%>
<% response.setDateHeader("Expires",-1);%>
<% response.setIntHeader("Refresh",10);%>

in questo modo riesco a visualizzare i dati aggiornati sulla mappa.

Il file .txt lo leggo tramite una funzione di OpenStreetMap fornita dalle sue API.
Logged
hukketto
Forumista Esperto
****
Offline Offline

Gender: Male
Posts: 1.000



« Reply #3 on: 17-05-2012, 19:59:51 »

se non vuoi scomodare gli header http (o uno script server-side solo per modificarli)
c'è un trucchetto molto semplice per aggirare la cache http:
basta appendere un parametro che usi un valore che cambia sempre alla url richiamata dal tuo javascript ..ad esempio... un timestamp :)
www.mysite.com/assets/readme.jsp?ts=128752289384
Logged

Gam
Apprendista Forumista
**
Offline Offline

Posts: 385



« Reply #4 on: 18-05-2012, 09:30:14 »

se non vuoi scomodare gli header http (o uno script server-side solo per modificarli)
c'è un trucchetto molto semplice per aggirare la cache http:
basta appendere un parametro che usi un valore che cambia sempre alla url richiamata dal tuo javascript ..ad esempio... un timestamp Smiley
www.mysite.com/assets/readme.jsp?ts=128752289384


questa pagina non è raggiungibile!
Logged
hukketto
Forumista Esperto
****
Offline Offline

Gender: Male
Posts: 1.000



« Reply #5 on: 18-05-2012, 12:36:18 »

?
a parte che "Questa pagina non è raggiungibile" non mi sembra un messaggio di errore http...
ad ogni modo, se hai sostituito correttamente con il tuo URL deve funzionare, in quanto, da specifiche l'URL è definito fino al "?" che indica l'inizio della query string. Appendendo una query string differente forzi il webserver a mandarti una versione non cached. Tutto qui

>> se non ti fidi...o non mi sono spiegato bene...

[edit]
se pensavi che mysite.com/assets/readme.jsp?ts=2141241251  fosse una guida su come fare, non era così...
era un semplice esempio 
[/edit]
« Last Edit: 18-05-2012, 13:33:56 by hukketto » Logged

Gam
Apprendista Forumista
**
Offline Offline

Posts: 385



« Reply #6 on: 18-05-2012, 19:44:53 »

non è questione di non fidarsi... semplicemente avevo frainteso.

Ti ringrazio comunque del tuo intervento!  ok
Logged
LtWorf
Forumista Esperto
****
Offline Offline

Posts: 1.079

Ogni cosa da me scritta è da intendersi come opinione personale e non come dato di fatto. Anche le eventuali dimostrazioni matematiche da me scritte saranno opinioni personali e quindi dovranno venire dimostrate da una terza parte di fiducia


WWW
« Reply #7 on: 19-05-2012, 10:28:19 »

Ma il metodo di hukketto riempie le cache dei browser di spazzatura palesemente inutile!
Meglio gli header secondo me.

Non devi usare per forza uno script per aggiungere header extra.
http://www.absolutelytech.com/2010/08/02/howto-add-expire-headers-to-cache-static-files-using-htaccess/
Logged

There are some OO programming languages. I will create the first -_-' language.

LtWorf
LtWorf
Forumista Esperto
****
Offline Offline

Posts: 1.079

Ogni cosa da me scritta è da intendersi come opinione personale e non come dato di fatto. Anche le eventuali dimostrazioni matematiche da me scritte saranno opinioni personali e quindi dovranno venire dimostrate da una terza parte di fiducia


WWW
« Reply #8 on: 19-05-2012, 10:31:17 »

O meglio ancora questo

http://httpd.apache.org/docs/2.2/mod/mod_headers.html
Logged

There are some OO programming languages. I will create the first -_-' language.

LtWorf
hukketto
Forumista Esperto
****
Offline Offline

Gender: Male
Posts: 1.000



« Reply #9 on: 19-05-2012, 20:03:41 »

in effetti l'idea di usare un timestamp per raggirare la cache è utile quando vuoi evitare la cache 'solo' quando il file da leggere è stato aggiornato (aggiornando insieme al file anche l'url che lo richiama). Tutte le successive letture sulla stessa versione utilizzerebbero quindi lo stesso timestamp e usufruirebbero della cache. Andare a modificare gli header http per eliminare del tutto la cache è un altro approccio, bisogna vedere cosa in realtà si vuole ottenere ;) Il mio è un suggerimento in mezzo agli altri :)
Logged

Pages: [1]   Go Up
Print
Jump to: