【问题标题】:Flash: Prevent images coming from cache?Flash:防止图像来自缓存?
【发布时间】:2013-12-18 07:24:07
【问题描述】:

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

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

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

很遗憾,发布 SWF 的网络主机告诉我他们无法上传 SWF,因为系统不允许使用随机函数的 SWF 文件。所以我可以删除它并重新提交,但是缓存的问题就会出现。

还有其他选择吗?

谢谢。

【问题讨论】:

  • 你的意思是webhost识别swf使用了Math.random函数吗?

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


【解决方案1】:

一般来说,完全阻止缓存并不是一个好主意,它是一个非常有用的功能,可以保护服务器流量并减少 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 文件的版本,但每次更改某些图像时都必须更新它。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2017-01-19
      • 1970-01-01
      • 2014-04-21
      • 2015-11-06
      • 2014-03-01
      • 2011-11-07
      • 2018-08-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多