Ich habe eine Flex-Anwendung mit mehreren Modulen.
Beim erneuten Bereitstellen der Anwendung habe ich festgestellt, dass Module (die als separate SWF-Dateien bereitgestellt werden) im Browser zwischengespeichert wurden und die neuen Versionen nicht geladen wurden.
Also habe ich den uralten Trick ausprobiert, ?version=xxx
zu allen Modulen hinzuzufügen, wenn sie geladen sind. Der Wert xxx
ist ein globaler Parameter, der tatsächlich in der Host-HTML-Seite gespeichert wird:
Zusätzlich musste ich ?version=xxx
zu der Haupt-SWF hinzufügen, die geladen wurde. Da dies von HTML getan wird, musste ich dies tun, indem ich meine AC_OETags.js Datei wie folgt ändere:
Das ist alles in Ordnung und funktioniert gut. Es fällt mir nur schwer zu glauben, dass Adobe noch keinen Weg hat, damit umzugehen. Angesichts der Tatsache, dass Flex auf die Entwicklung modularer Anwendungen für Unternehmen ausgerichtet ist, finde ich das besonders überraschend.
Was machen andere Leute? Ich muss sicherstellen, dass meine Anwendung korrekt neu geladen wird, auch wenn jemand once per session
für seine "Browser-Cache-Prüfrichtlinie" ausgewählt hat.
Ich hatte ein ähnliches Problem und setzte die SWF-Dateien in einem Unterverzeichnis namens Build-Nummer ab. Dies bedeutet, dass die URL zu den SWF-Dateien jedes Mal auf einen anderen Ort verweist.
Im Idealfall sollte das von der Plattform gedeckt werden, aber keine Freude. Aber das funktioniert perfekt für uns, und integriert sich sehr einfach in unsere automatisierten Builds mit Hudson - bisher keine Beschwerden.
Was ich getan habe, ist eine Checksumme der SWF-Datei und dann diese zu ihrer URL hinzuzufügen. Bleibt gleich, bis die Datei neu erstellt / erneut bereitgestellt wird. Automatische Handhabung durch einige Zeilen serverseitigen PHP-Skript
hier ist ein Beispiel.
%Vor%AC_OETags.js ist eine Datei und es existiert eine HTML-Vorlage an mehreren Stellen. Aber wie ich in meinem Beitrag gesagt habe, stehe ich vor einem anderen Problem.
Die Zwischenspeicherung erfolgt nicht über den Flash Player, sondern über den Browser. Sie liegt also außerhalb der Kontrolle von Adobe. Ich denke, Sie haben eine praktikable Lösung gefunden. Wenn ich das Caching vermeiden möchte, füge ich normalerweise eine Zufallszahl an die URL an.