Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Svuotare la cache

  1. #1

    Svuotare la cache

    Ciao a tutti!

    Sto lavorando con javascript e nella mia app, utilizzo dei files .xml

    Il file xml rappresenta la struttura di un libro.

    Quando viene creato il libro tutto procede normalmente.

    Nel caso in cui l'amministratore dell'applicazione debba aggiornare per esempio una pagina, o modificare aggiungendone altre il file xml, per problemi di cache questo non risulta aggiornato nella pagina di amministrazione.

    Cosa che si risolve immediatamente svuotando la cache.

    E' come se il browser tenesse in memoria il file vecchio e non considera il nuovo fino a quando la cache non si svuota...

    Come faccio a risolvere in modo automatico, cioè senza dover svuotare ogni volta manualmente la cache???

    A presto.

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Non puoi TU svuotare la cache dell'utente... e' sua e ne fa quello che gli pare

    Tu puoi forzare il caricamento di una risorsa ingannando il browser facendogli credere che si tratti di una risorsa dinamica.... aggiungendo al suo URL una variabile sempre diversa:

    <a href="pincopallo.htm" onclick="this.href+=('?rnd='+Math.random())">

    o le varianti dettate dalle tue esigenze.

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Originariamente inviato da br1
    Non puoi TU svuotare la cache dell'utente... e' sua e ne fa quello che gli pare

    Tu puoi forzare il caricamento di una risorsa ingannando il browser facendogli credere che si tratti di una risorsa dinamica.... aggiungendo al suo URL una variabile sempre diversa:

    <a href="pincopallo.htm" onclick="this.href+=('?rnd='+Math.random())">

    o le varianti dettate dalle tue esigenze.

    ciao
    Il mio problema è questo:

    Codice PHP:
    echo"<select id=\"titolo\" name=\"titolo\" onblur=\"aggiornaLibro('./include/books/'+this[this.selectedIndex].value+'.xml'); document.modulo.nameb.value=this[this.selectedIndex].value\">"
    Quando viene generato l'evento onblur sulla select, il browser mantiene in cache sempre la prima versione del file xml... per cui se questo viene modificato i campi rimangono sempre e solo quelli del file presente in cache...

    come faccio ad utilizzare la tua soluzione in questo caso particolare?

  4. #4
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Mi spiace, non sono in grado di leggere il codice lato server

    Posta cio' che riceve il browser
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  5. #5
    Originariamente inviato da br1
    Mi spiace, non sono in grado di leggere il codice lato server

    Posta cio' che riceve il browser
    Non capisco bene cosa intendi...

    in ogni caso questo è il codice sorgente preso dal browser:

    Codice PHP:

    <form class="form" name="modulo" method="post" onSubmit="return checkLibro(document.modulo);" action="./admin.php">
    <
    div class="text-title"
    <
    h3 class="title">Setup del Libro</h3
    </
    div>
    <
    fieldset title="Libri">
    <
    div class="order-top">
    <
    label for="nameb">Titolo Libro:</label>
    <
    select id="titolo" name="titolo" onblur="creaModuloAggiornamento('./include/books/'+this[this.selectedIndex].value+'.xml'); document.modulo.nameb.value=this[this.selectedIndex].value">
    <
    option class="short" onfocus="this.style.backgroundColor='#FFFFFF';" value="Libro1" />Libro1</option>
    <
    option class="short" onfocus="this.style.backgroundColor='#FFFFFF';" value="Libro2" />Libro2</option>
    <
    option class="short" onfocus="this.style.backgroundColor='#FFFFFF';" value="Libro3" />Libro3</option>
    </
    select>
    <
    input id="nameb" name="nameb" type="hidden" value="" />        
    <
    br class="clearer" />
    </
    div
    Spero di aver capito cosa volevi...

    In poche parole la funzione js creaModuloAggiornamento('./include/books/'+this[this.selectedIndex].value+'.xml');
    va a creare il modulo del form riempiendo dinamicamente i campi del form, che dovranno poi essere eventualmente modificati...

    Il problema è che se lo faccio la prima volta funziona. Poi il file ./include/books/'+this[this.selectedIndex].value+'.xml risulta presente in cache, ma non aggiornato, quindi se volessi aggiornarlo nuovamente, quando seleziono la option nella select mi dà i dati presenti in cache e non l'ultima versione del file appena modificato...
    Non so se sono stato chiaro... spero di sì!

    grazie per l'aiuto!

  6. #6
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Intendo questo:
    codice:
    echo"<select id=\"titolo\" name=\"titolo\" onblur=\"aggiornaLibro('./include/books/'+this[this.selectedIndex].value+'.xml'); document.modulo.nameb.value=this[this.selectedIndex].value\">";
    Non so cosa faccia la funzione da te citata, ma applicando le indicazioni che ti ho gia' dato dovrebbe essere sufficiente chiamare:

    creaModuloAggiornamento('./include/books/'+this[this.selectedIndex].value+'.xml'+'?rnd='+Math.random());

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.