我们创建了一个简单的Flash动画,可以从另一台服务器的XML文件中读取。此XML文件包含标记,其中包含将在Flash中显示的多个图像的路径。 xml标记如下所示:
<image_name><![CDATA[assets/images/image1.jpg]]></image_name>
当我在本地测试时,我意识到,即使在我更改了XML中的图像之后,SWF仍然显示来自浏览器缓存的图像。因此开发人员最终添加了一些随机函数,以便缓存不会成为问题。这解决了这个问题。
不幸的是,发布SWF的webhost告诉我他们无法上传SWF,因为系统不允许使用随机函数的SWF文件。所以我可以删除它并重新提交,但随后缓存的问题就在那里。
还有其他选择吗?
感谢。
答案 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
。