J'ai une application Flex avec plusieurs modules. Lorsque je redéployais l'application, je constatais que les modules (qui sont déployés en tant que fichiers SWF distincts) étaient mis en cache dans le navigateur et que les nouvelles versions n'étaient pas chargées.Prévention de la mise en cache de l'application Flex dans le navigateur (plusieurs modules)
J'ai donc essayé l'astuce d'ajouter ?version=xxx
à tous les modules quand ils sont chargés. La valeur xxx
est un paramètre global qui est stocké dans la page html hôte:
var moduleSection:ModuleLoaderSection;
moduleSection = new ModuleLoaderSection();
moduleSection.visible = false;
moduleSection.moduleName = moduleName + "?version=" + MySite.masterVersion;
En plus je devais ajouter ?version=xxx
la principale .swf qui était en cours de chargement. Étant donné que cela se fait par HTML que je devais le faire en modifiant mon dossier AC_OETags.js comme ci-dessous:
function AC_FL_RunContent(){
var ret =
AC_GetArgs
( arguments, ".swf?mv=" + getMasterVersion(), "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
, "application/x-shockwave-flash"
);
AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}
Tout cela est bien et fonctionne très bien. J'ai juste du mal à croire qu'Adobe ne dispose pas d'un moyen de gérer cela. Étant donné que Flex vise à concevoir des applications modulaires pour les entreprises, je trouve cela particulièrement surprenant.
Que font les autres? Je dois m'assurer que mon application se recharge correctement même si quelqu'un a once per session
sélectionné pour sa 'politique de vérification du cache du navigateur'.
droit, mais trouver une solution viable isnt hors de leur contrôle. Je veux avant tout m'assurer que je ne manque pas de fonctionnalité intégrée et que je réinvente la roue. Je ne veux pas spécifiquement un nombre aléatoire parce que je veux que l'application soit mise en cache lorsque possible –