Flash:阻止来自缓存的图像?

时间:2013-12-02 14:34:52

标签: actionscript-3 flash actionscript actionscript-2 flash-cs5

我们创建了一个简单的Flash动画,可以从另一台服务器的XML文件中读取。此XML文件包含标记,其中包含将在Flash中显示的多个图像的路径。 xml标记如下所示:

<image_name><![CDATA[assets/images/image1.jpg]]></image_name>

当我在本地测试时,我意识到,即使在我更改了XML中的图像之后,SWF仍然显示来自浏览器缓存的图像。因此开发人员最终添加了一些随机函数,以便缓存不会成为问题。这解决了这个问题。

不幸的是,发布SWF的webhost告诉我他们无法上传SWF,因为系统不允许使用随机函数的SWF文件。所以我可以删除它并重新提交,但随后缓存的问题就在那里。

还有其他选择吗?

感谢。

2 个答案:

答案 0 :(得分:2)

一般来说,防止缓存并不是一个好主意,它是保护服务器流量并减少swf加载时间的非常有用的功能。

这里的一些解决方案可以通过手动添加图像版本来更改xml配置中的URL:

 <image_name><![CDATA[assets/images/image1.jpg?image_v1]]></image_name>

或使用脚本自动生成此版本作为图像字节的md5:

 <image_name><![CDATA[assets/images/image1.jpg?5d41402abc4b2a76b9719d911017c592]]></image_name>

但它需要更多的设置工作。

或者添加swf应用程序的版本:

 <image_name><![CDATA[assets/images/image1.jpg?app_v1]]></image_name>

最后一个解决方案是两个选项之间的折衷 - 维护每个图像文件的版本并删除缓存。在这种情况下,您只需要维护swf文件的版本,但每次更改某些图像时都必须更新它。

答案 1 :(得分:0)

防止缓存不好,但这是我的解决方案:使用“随机”数字(以秒为单位的当前时间)作为参数assets/images/image1.jpg?t=RandomNumber