天天看点

Silverlight奇技银巧7 - 巧用文件生成时间强制客户端载入最新xap文件

  像大多数的项目一样,即使在将Silverlight应用程序交付后,我们仍会根据客户的需求进行相应修改并将xap文件发送给客户,客户经过测试后再部署到生产环境。

    这样经常会面临一个问题,客户更新xap后并未看到任何变化甚至由于我们wcf服务等相关文件的改动会让程序执行发生异常。这个原因倒是很明显--我们的xap文件被缓存了,当服务器上替换了新的xap文件时,本地并未重新从服务器上下载。这时候我们当然就要告知客户如何清理缓存等等,再碰到个电脑盲(大多情况下)更是苦不堪言。客户抱怨,项目经理哑巴吃黄连…

    那么有没有一种方法可以解决上面提到的问题呢?当然,且听分解。

    我们先看一段在html中签入Silverlight应用的标准代码示例

    注意下面这行,我们就要从这里下手。

    我们知道,要防止浏览器自动缓存文件,经常用的一个做法就是在要加载的文件名后面加入一个随机字符串(比如验证码的刷新),如Guid、DateTime.Now.Ticks一类。

    因此我们这里的思路就是通过判断xap文件的生成时间而决定是否重新载入xap包。

    最终View的全部代码如下:

注意,这里我是用ASP.NET MVC(Razor语法)承载xap,对WebForm或WebForm View同样适用,请自行更改。

本文转自紫色永恒博客园博客,原文链接:http://www.cnblogs.com/024hi/archive/2011/01/07/1929441.html  ,如需转载请自行联系原作者

继续阅读