当前位置:  开发笔记 > 编程语言 > 正文

如何强制Firefox不缓存或重新下载Silverlight XAP文件?

如何解决《如何强制Firefox不缓存或重新下载SilverlightXAP文件?》经验,为你挑选了5个好方法。

在使用Silverlight时,我注意到Firefox将缓存XAP文件,因此如果我进行更新,用户可能会使用过时的版本.有没有办法强制浏览器每次都重新下载XAP文件,或者只是在更新发布后才强迫它?或者Silverlight配置中是否有设置阻止浏览器完全缓存XAP文件?

谢谢,杰夫



1> Romain..:

查询字符串工作正常,但我不会使用DateTime.Now,因为它强制用户每次都重新下载应用程序.相反,我们使用以下内容:

protected void Page_Load(object sender, EventArgs e)
{
    var versionNumber = Assembly.GetExecutingAssembly().GetName().Version.ToString();
    this.myApp.Source += "?" + versionNumber;
}

这样,您所要做的就是增加AssemblyInfo.cs文件中的版本号.



2> Andy Mehalic..:

最简单的方法:



取而代之的是获取xap文件的文件日期要好得多.然后用户不必每次都下载应用程序.

3> FlappySocks..:

这就是我在php中所做的.您读取xap文件的日期/时间,并将其作为参数附加到下载链接.通过这种方式,浏览器将新文件版本视为新链接,因此不在其缓存中.




简单而且有效.此外,当没有下载更新时,浏览器会继续正确缓存.



4> converter42..:

您可能会发现Web作者和网站管理员的缓存教程很有帮助。本文档讨论了客户端和服务器之间进行交互的不同缓存(浏览器,代理,网关)以及如何控制缓存。


KevDog:如果按照Timothy Lee Russell在回答中所说的那样,清除Firefox的缓存可以解决此问题,那么这意味着Firefox(不是Silverlight插件)正像其他任何Web资源一样通过HTTP请求文件,并使用相同的规则对其进行缓存适用于所有内容。了解缓存规则可能会有所帮助。

5> JwJosefy..:

对我来说,最好的答案来自Chris Cairns.我刚刚调整了一下,调用ToString和GetHashCode,为时间戳生成一个ID:

" />

工作得很好!

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有