现在的位置: 首页 > 综合 > 正文

silverlight程序集缓存

2012年01月15日 ⁄ 综合 ⁄ 共 943字 ⁄ 字号 评论关闭

    silverlight中的程序集缓存可以将一些独立的程序集放在XAP包外边并可以缓存在客户端的浏览器中,这样就可以减少程序启动时下载XAP包的时间。默认情况下silverlight并没有开启程序集缓存,因此需要自己动手开启。

  右键打开项目的属性,并在通过使用应用程库缓存较小XAP大小选项打钩,如图

  

 在没选择此项之前编译项目看一下XAP中的DLL,如图

  重新编译项目,选择显示所有文件然后打开Bin\Debug目录,会看到每一个缓存程序集都有自己的zip文件包。比如,如果使用了System.Windows.Controls.dll,会看到一个System.Windows.Controls.zip的文件,如图

这个ZIP包就包含了System.Windows.Controls.dll,如图

而原来的XAP包将不在存在此DLL,如图

如果使用的是ASP.NET作为测试网站,Visual Studio将会把XAP包和所有的缓存程序集一并拷入ClientBin目录下,如图

这是没有使用缓存程序集前的ClientBin目录下的内容,如图

  使用程序集缓存在第一次打开程序时并没有多大的性能改善,因为它还是需要XAP包和其他的ZIP内容一块下载下来。但在用户在第二次打开程序时,因为这些独立的程序集已经被缓存到客户端不用重新下载,这样就提高了用户的访问速度。

  使用技巧:

  1.缓存的程序集和浏览器的缓存有效期相同。如果用户手动清除了缓存,程序集缓存也将同样被清除掉。

  2.用户每次运行程序时,程序都会自动检查程序集是否有最新的版本。如果有,则下载并替换原来缓存的程序集。

  3.如果一个程序将程序集下载并缓存在浏览器中,其它使用缓存程序集的程序也可以使用。

  4.程序集缓存在体积大,使用频繁并且不经常改变的程序集上优势会更加明显。对于那些体积小,程序在启动时下载花费时间少的程序集,尽量避免使用这种方法,因为这样在程序部署时会带来麻烦(程序集缓存后会产生多个ZIP包,部署时需

要把所有的文件都放在站点下)。

  5.自定义程序集不支持程序集缓存,比如自己创建的某个类库。如果需要silverlight支持自定义程序集缓存,需要自己动手做些工作(查看silverlight支持自定义程序集缓存)。

抱歉!评论已关闭.