Domanda

Lavorando su un progetto in AS3 ho bisogno di eseguire lo streaming di alcuni file a scopo di test della larghezza di banda. I file devono provenire dalla CDN (il proxy più vicino del client) per rendere affidabile il test della larghezza di banda.

Ovviamente se i file remoti vengono memorizzati nella cache del browser dei client, il test della larghezza di banda non sarebbe affidabile.

Di solito aggiungo un timestamp nelle variabili GET per ingannare la cache dei client. Ma posso immaginare che sia una brutta pratica lavorare con un CDN.

Quindi la mia domanda è:

come forzare il bypass della cache dei client per recuperare una nuova versione di un file senza cambiare davvero la richiesta?

Grazie in anticipo,

T

MODIFICA:

L'ideale sarebbe inviare un'intestazione di controllo della cache in URLRequest (grazie Assaf!). Sfortunatamente l'ho provato per un po 'e non sembra funzionare in FlashPlayer. Anche sul web, le persone sembrano essere pessimiste sull'argomento.

Esempio rapido:

var headers:Array = new Array(new URLRequestHeader("Cache-Control", "no-cache"));
urlRequest.requestHeaders = headers;
urlRequest.load(url);

Qualcuno è mai riuscito a fare qualcosa di simile al lavoro?

È stato utile?

Soluzione

Il modo corretto per farlo è specificare le intestazioni del controllo http della cache nella richiesta o configurare la no-caching sul server.

Se hai il controllo sul server puoi specificare pragma no-cache, o qualcosa di equivalente, in modo che alcuni file non siano mai memorizzati nella cache.

Il timestamp non è davvero una buona idea, perché potrebbe rovinare tutti i tipi di cache lungo la strada.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top