Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    957

    Cache - Aggiornare le risorse collegate

    Ciao a tutti,
    volevo sapere se esiste qualche comando o metatag da inserire in una pagina HTML in modo da forzare il ricaricamento delle risorse collegate alla pagina HTML eventualmente cachate.
    Per risorse intendo ad esempio fogli CSS o script JS esterni, mi capita di fare aggiornamenti e dover chiedere agli utenti di premere F5 per ricaricare le nuove risorse, vorrei capire se posso automatizzare la cosa inserendo se necessario un comando nella pagina HTML.

    Grazie

  2. #2
    Utente di HTML.it L'avatar di blekm
    Registrato dal
    Jun 2004
    Messaggi
    8,310
    Il portale sul turismo a Lucca

    Siti web Lucca

    Vendo Tex a colori di Repubblica (primi 100 numeri) - info in pvt.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    957
    Ma io non parlo della cache della pagina HTML in se (che già non viene cachata visto che è generata da PHP) ma un comando per refreshare le risorse collegate su file externi come CSS, JS o immagini.

  4. #4
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    una possibilità è quella di cambiare nome alle risorse, così da poterne forzare lo scaricamento
    è un operazione tanto più facile quanto più modulare è il sito/applicazione.
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  5. #5
    Se i file vengono generati dinamicamente potresti utilizzare:
    • E-Tag
    • Last-Modified
    • Expires

    da inserire nell'header dei file Css e Js.

    Un'altra soluzione potrebbe essere quella di utilizzare i moduli Apache "mod_headers" e "mod_exipres".

    Non per farmi pubblicità, ma sul mio blog ho pubblicato un articolo di circa 8 pagine sulla questione, e mi sono anche sbattuto tanto per studiare alcune cose del protocollo http...

    Quindi, questo è il link: http://jblog.it/2009/04/24/ridurre-r...owser_124.html

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    957
    jAmes.87 o io non ho capito te o tu non hai capito il mio problema conosco abbastanza bene l'HTTP e non mi sembra che intervenire sull'header mi risolva il problema perchè appunto, l'header lo invii nel momento della richiesta, se la risorsa è in cache non richiedi nulla finchè non scade. E io, appunto, vorrei che la risorsa scadesse "a richiesta".

    Il mio problema è che se io ad es. metto in cache una risorsa JS per 10 giorni, e al 5o giorno aggiorno lo script non ho modo di intervenire per forzare il ricaricamento della risorsa che è cachata per altri 5gg. Speravo esistesse una meta tag o qualcosa per indicare alla pagina html di ricaricare le risorse collegate indipendentemente dalla cache.

    L'unica soluzione che sembra risolvere il mio problema è quella di fcaldera, in effetti se appendo al nome della risorsa la versione risolvo il mio problema. E' una soluzione che non mi esalta, ma sembra efficace.

  7. #7
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    Originariamente inviato da jAmes.87
    Se i file vengono generati dinamicamente potresti utilizzare:
    • E-Tag
    • Last-Modified
    • Expires

    da inserire nell'header dei file Css e Js.
    questo però risponde al problema opposto
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    957
    Originariamente inviato da fcaldera
    questo però risponde al problema opposto
    Si, cioè al fatto di mettere in cache le risorse... infatti questo è quello che già sto facendo impostando una cache a lungo termine. Il problema sorge quando ho modifiche da apportare e non posso aspettare che la cache si svecchi.

  9. #9
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,783
    Originariamente inviato da fcaldera
    questo però risponde al problema opposto
    non sono sicuro...


    @jAmes.87, potresti articolare un po' la risposta per favore?

  10. #10
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    Originariamente inviato da Vincent.Zeno
    non sono sicuro...
    Gli header expires di HTTP/1.0 e cache-control di HTTP/1.1 consentono di stabilire il quanto di tempo in cui un documento nella cache del client risulta valido. Sono cioè due metodi complementari per mettere in cache una risorsa per un certo tempo (impostato in secondi, attraverso la direttiva max-age).

    Ciò significa che se l'accesso ad una risorsa avviene in quel quanto di tempo, questa sarà letta dalla cache anziché essere richiesta nuovamente al server

    il problema dell'autore del thread è esattamente l'opposto: ha delle risorse in cache e vuole una soluzione per forzare la richiesta da server anziché dalla cache.

    Che siano usati o meno quegli header poco conta,
    1) perchè le risorse in cache hanno già la direttiva max-age definita e fino alla scadenza non generano richieste al server
    2) perchè anche rimuovendoli non risolve il problema della 'prime cache' (almeno per la prima volta)

    il modo più semplice per invalidare la cache resta il cambio di nome della risorsa
    se hai aggiornato un file js o css (ad esempio) basterebbe richiamare lo stesso file appendendo in querystring un timestamp o altra stringa casuale/progressiva
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

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.