La prévention de l'application Flex mise en cache dans le navigateur (plusieurs modules)
J'ai une application Flex avec plusieurs modules.
Quand je redéployer l'application j'ai trouvé que les modules (qui sont déployés en tant que distincte des fichiers swf) ont été mis en cache dans le navigateur et les nouvelles versions n'étaient pas en cours de chargement.
J'ai donc essayé le vieux truc de l'ajout de ?version=xxx
à tous les modules lorsqu'ils sont chargés. La valeur xxx
est un paramètre global qui est en fait stockée dans la page html hôte:
var moduleSection:ModuleLoaderSection;
moduleSection = new ModuleLoaderSection();
moduleSection.visible = false;
moduleSection.moduleName = moduleName + "?version=" + MySite.masterVersion;
En plus j'ai besoin d'ajouter ?version=xxx
à la main .swf en cours de chargement. Puisque ceci est fait en HTML, j'ai dû le faire en modifiant mon AC_OETags.js fichier 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);
}
Ce est tout très bien et fonctionne très bien. J'ai juste du mal à croire qu'Adobe n'a pas déjà une façon de gérer cela. Étant donné que Flex est pour cible la conception modulaire des applications pour les affaires que j'ai, il est particulièrement surprenant.
Ce que font d'autres personnes? Je dois m'assurer que ma demande de recharge correctement même si quelqu'un a once per session
sélectionnés pour leur "cache du navigateur de vérification de la politique".
OriginalL'auteur Simon_Weaver | 2008-11-19
Vous devez vous connecter pour publier un commentaire.
J'ai eu un problème similaire, et a fini par mettre les fichiers SWF dans un sous-répertoire nommé le numéro de build. Cela signifie que l'URL pour les fichiers SWF a indiqué à un endroit différent à chaque fois.
Idéalement, ce devrait être pris en charge par la plate-forme, mais pas de joie. Mais cela fonctionne parfaitement pour nous, et s'intègre très facilement dans notre automatisé construit avec Hudson - pas de plaintes à ce jour.
OriginalL'auteur Stuart
Flex dit:
http://www.adobe.com/livedocs/flex/2/docs/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00001388.html
OriginalL'auteur Akif Tariq
Ce que j'ai fait est de la somme de contrôle du fichier SWF, puis l'ajouter à son url. Reste le même jusqu'à ce que le fichier est recréé/redéployés. Effectué automatiquement par quelques lignes de script PHP côté serveur
Dans mon application, la page de la tenue de la SWF est chargé une fois (ou extrêmement rarement - je ne ajax & flex remoting après que). Et pour le calcul de la somme de contrôle md5 en PHP alors que le montage de la page n'est pas une grosse affaire. Mon SWF est inférieure à 120K en taille, donc ce travail est en fait assez rapide. ...
.. pour le beaucoup plus importante des ressources des fonds souverains que j'utilise aussi, j'ai mis de la somme de contrôle calculée sur un côté-un fichier qui est écrit au moment de la création. Les réponses Ajax transmettre la somme de tagged SWF url du client en tant que de besoin.
Pouvez-vous veuillez donner un exemple de code?
OriginalL'auteur Scott Evernden
voici un exemple.
AC_OETags.js est fichier et il existe html-template plusieurs endroits.
mais comme mon affectation dit, je suis confronté à un autre type de problème.
OriginalL'auteur user349449
La mise en cache n'est pas fait par un Lecteur Flash, mais par le navigateur, il est donc hors de Adobe de contrôle. Je pense que vous avez trouvé une solution viable. Si je veux éviter la mise en cache j'ai l'habitude de joindre un nombre aléatoire sur l'URL.
OriginalL'auteur Theo