2011-06-14 13 views
9

Come sapete tutti, è possibile creare un pacchetto XAP Silverlight e farvi riferimento usando il tag dell'oggetto nella pagina HTML o nella pagina asp.net.In che modo i browser gestiscono il caching dei pacchetti XAP?

Quando il browser scarica il pacchetto XAP dal server la prima volta che la pagina viene referenziata dall'utente, se l'utente aggiorna la stessa pagina, ri-scarica lo stesso pacchetto XAP o utilizza la versione cache?

Se l'utente si sposta a un'altra pagina che utilizza la stessa pacchetto XAP e il pacchetto XAP è stato già scaricato a causa della pagina precedente l'utente era accesa, fa il browser utilizzato una versione in cache o andare al server e download nuovamente?

Se il browser utilizza le versioni memorizzate nella cache per tutto il tempo, come fa a sapere quando usare la versione cache e quando utilizzare la nuova versione del pacchetto XAP dal momento che potrebbe essere stato ricostruire con nuovi cambiamenti? Ha qualcosa a che fare con il numero di versione del pacchetto?

risposta

9

XAP è considerato come un file di risorse normale stessa immagine (png/gif/jpg eccetera). Il browser non scarica la nuova copia fino a quando non vengono soddisfatte le sue condizioni della cache HTTP che sono fuori dallo scope per spiegarlo qui. L'unica soluzione che abbiamo adattato è quella di aggiungere "tag" dopo l'URL di XAP e il tag può sostituire il numero di versione che costringerà il browser a scaricare nuovamente il file.

Così abbiamo aggregarsi nostro url come ..

MySilverlightClient.xap?v1 
MySilverlightClient.xap?v2 

ecc Quindi, anche se si è memorizzato nella cache per la versione corrente non c'è nessun problema, ma quando una nuova versione viene modificata sul lato server, siamo in grado di cambiare il nostro tagga v1 a qualcos'altro che costringerà il browser a considerarlo come un nuovo URL e lo scaricherà nuovamente anche se è memorizzato nella cache.

+0

È necessario ricordare di aggiornare il tag di versione in tutti i file HTML utilizzando l'XAP, il più delle volte non è un problema, dato che di solito lo si ha solo in un file HTML. Perché la configurazione delle intestazioni di controllo della cache nella cartella ClientBin non funziona per te? – AnthonyWJones

+0

Non ho molta esperienza nella configurazione delle intestazioni di controllo della cache, puoi indicarmi la direzione in cui posso imparare di più? – ActiveX

+0

Informazioni sugli URL, quindi se cambio l'URL stai dicendo che il browser scaricherà nuovamente la risorsa invece di usarla dalla cache? È così semplice? – ActiveX

2

Posso rispondere alla prima parte della domanda, ovvero che il browser utilizza una copia cache di XAP quando si rivisita/aggiorna la pagina. In effetti, può essere abbastanza divertente ottenere il browser per scaricare una nuova copia!

Ogni browser si comporta in modo diverso qui, ovviamente, con IE sembra essere il più testardo di aggiornare l'XAP quando il file di origine è cambiato. Come sottolinea Anthony nei commenti, l'XAP viene trattato come qualsiasi altro file di contenuto in base alla gestione della cache del file di contenuto predefinita del browser.

Ci sono alcune buone soluzioni in questo domanda simile che coprono altri modi per garantire la XAP viene aggiornato:

Making the Silverlight XAP file expire from browser cache programmatically

+2

IE stabilisce le proprie regole se il server non riesce ad essere esplicito su quale comportamento di caching è richiesto da esso. La maggior parte dei browser si comporta in modo abbastanza coerente se il server fornisce le intestazioni di controllo della cache corrette in primo luogo. La risposta alla maggior parte delle domande relative al "caching XAP" è praticamente identica alle domande "caching del PNG": capire come funziona la cache in HTTP. – AnthonyWJones

+0

@AnthonyWJones Grazie, ha senso. –

Problemi correlati