如何在不清除缓存的情况下强制网页浏览器重新加载新部署的Flash文件?

9
当我在以下HTML文件中部署新的.swf文件时,我必须在新的.swf文件在浏览器中加载之前清除浏览器缓存。是否有办法强制浏览器在我替换服务器上的新文件时加载.swf文件。
<embed type="application/x-shockwave-flash" wmode="transparent" pluginspage="http://www.adobe.com/go/getflashplayer" allowscriptaccess="sameDomain" name="Prototype" bgcolor="#869ca7" quality="high" id="Prototype" src="/flex/Prototype.swf"> 

感谢您,Chirag。
3个回答

14

通过打标签来更改源名称。

src="/flex/Prototype.swf?ver=1.0.1"

3

我也这么做,但是加上一个随机数,这样我就不必每次都写一个新的数字了。

src="/flex/Prototype.swf?<?= rand() ?>"  

6
使用随机数作为缓存版本号,每次返回访问者都需要从服务器下载文件,不论文件是否已经更改。这会导致返回访问者的加载时间更长,同时也会给服务器造成大量负载,对吧?而采用版本号的方法,您可以控制何时允许缓存以及何时强制获取更新的swf文件。 - Lars Blåsjö
5
我不会将其用于生产目的,仅用于开发,这样我就无需反复清除浏览器缓存。对于生产环境,使用版本控制方法是有意义的。我同意! - PatrickS

2

只需在查询字符串中附加一个数字(您可以将其视为某种版本号)。 然后在更改SWF时更改该编号。 当数字更改时,浏览器将其视为不同的URL,因此它将跳过缓存并返回服务器以获取swf的最新副本。

<embed 
   type="application/x-shockwave-flash" 
   wmode="transparent" pluginspage="http://www.adobe.com/go/getflashplayer" 
   allowscriptaccess="sameDomain" name="Prototype" bgcolor="#869ca7" 
   quality="high" id="Prototype" src="/flex/Prototype.swf?1234" > 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接