Flex X Cache – 2° Round
A discussão é antiga, a guerra é longa, mais desta vês novamente eu ganhei.
No exemplo anterior, Flex X Cache – 1° Round, não gostei do fato de que a cada vês que o usuário carregar o sistema, terá que carregar o SWF completo.
Então para resolver este problema, eu cheguei a mais fácil das soluções, renomear o Application!!
Por exemplo, criei um projeto novo hoje e chamei o application principal de main20090804.mxml, e publiquei no servidor. Agora imagina que dia 10/09/2009 o responsável pelo sistema, usuário do IE-ca me pede uma atualização. Eu faço e renomeio o application para main20090910.mxml.
Agora quando vou publicar no servidor eu renomeio o HTML que foi gerado para index.html. Simples assim e assim você terá o histórico de todas as versões.
Veja ao lado um dos sistemas como esta de atualização. O ultimo html gerado é renomeado e tenho o histórico de todas as alterações que foram feitas.
Você pode seguir todas as respostas a esta entrada através do RSS 2.0 feed. Você pode deixar um comentário, ou colocar um link em seu site.


Valeu, ótima solução!
Eu confesso que não entendi. Se você não gosta que o usuário carrega o SWF inteiro mas você renomeia forçando ele a carregar de novo. A aplicação não seria divida em módulos? Acho que me perdi nessa…
@Froskie é necessário quando faz atualização no sistema. Neste caso preciso que seje ignora o que esta no cache e carregado o novo que esta no servidor
Cara isso é extremamente desnecessário.
Isso ajuda o usuário mais vai atrapalhar seu trampo.
Uma solução limpa deixar as dependências sem cache e o binário no cache, isso vai manter tudo atualizado sem peso demais pra o usuário a cada visita.
Agora se seu swf é pesado d+, seu approach ta errado, vc pode otimizar mais.
Eu nem quero imaginar como vc controla isso.
@Jan O problema não é o SWF pesado demais, e sim as atualizações que preciso fazer no sistema. Estas atualizações devem ser carregadas por todos os usuários sem necessidade de limpar cache.
Ok mas veja um exemplo na prática: Se por exemplo você faz duas atualizações no mesmo dia? E se por alguma razão você precise dar um rollback pra uma delas?
Agora imagina essa sua pasta c/ um arquivo? E vc controlando a versão de sua aplicação em um git por exemplo? Melhorou não?
Voltando ao objetivo, se você mudou alguma funcionalidade lógica, não tem como, o usuário precisa baixar o arquivo inteiro certo? Pelo que entendi, vc quer usar o cache a favor, se não ha updates, vale a versão em cache, senão baixa a nova.
Você pode simplesmente colocar no request do swf no seu index algo assim:
main.swf?version=N
Onde N é o número do build do seu app por exemplo.
É legal ter essa preucupação com o usuário, pq é bem chato o cara dar um refresh na pagina e tudo aquilo começar de novo.
Ta ai a dica
Em 2005 a Adobe já publicou um TechNote sobre o cache de SWFs
http://kb2.adobe.com/cps/147/tn_14743.html
@Mário O cache é util mais as vezes atrapalha. Então este segundo POST escrevi para manter o cache a meu favor. No O Cache é util para economizar recursos de rede enquanto uma nova versão não é lançada.
Não é mais fácil aprender a configurar o cache do servidor web ao invés de fazer gambiarra? O=)
Não.
Você terá que fazer isso em todos os clientes que utilizarem seu sistema.
Imagina pedir a todos?