2009-03-05 4 views
2

Arbeiten an einem Projekt in AS3 Ich brauche ein paar Dateien für die Bandbreite-Test-Zwecke zu streamen. Die Dateien müssen vom CDN (dem nächsten Proxy des Clients) kommen, um den Bandbreitentest zuverlässig zu machen.Wie verhindert man Client-Caching mit CDN

Natürlich, wenn die Remote-Dateien im Client-Browser zwischengespeichert werden, wäre der Bandbreitentest nicht zuverlässig.

Normalerweise würde ich einen Zeitstempel in den GET-Variablen hinzufügen, um den Client-Cache auszutricksen. Aber ich kann mir vorstellen, dass es eine sehr schlechte Praxis ist, mit einem CDN zu arbeiten.

Also meine Frage ist:

wie Bypass zu zwingen, der Clients zwischenspeichern, ohne wirklich die Änderung der Anforderung, eine neue Version einer Datei abrufen?

Vielen Dank im Voraus,

T

EDIT:

Ideal wäre es, einen Cache-Control-Header in URLRequest zu senden (dank Assaf!). Leider habe ich es schon eine Weile ausprobiert und es scheint nicht im FlashPlayer zu funktionieren. Sogar im Internet scheinen die Leute pessimistisch zu sein.

Schnell Beispiel:

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

Wer jemals geschafft, etwas Ähnliches arbeiten zu machen?

Antwort

1

Der richtige Weg, dies zu tun, ist die Angabe von Cache-HTTP-Steuerkopfzeilen in Ihrer Anfrage oder die Konfiguration von No-Caching auf dem Server.

Wenn Sie die Kontrolle über den Server haben, können Sie Pragma No-Cache oder etwas Äquivalentes angeben, so dass bestimmte Dateien nie zwischengespeichert werden.

Der Zeitstempel ist in der Tat nicht so eine gute Idee, weil es mit allen möglichen Caches auf dem Weg schraubt.