• 一起谈.NET技术,Silverlight程序集缓存巧妙设置 优化用户体验 狼人:


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

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

     silverlight

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

     silverlight

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

     silverlight

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

     silverlight

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

     silverlight

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

     silverlight

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

     silverlight

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

      使用技巧:

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

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

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

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

      5.自定义程序集不支持程序集缓存,比如自己创建的某个类库。

  • 相关阅读:
    QT中使用CoInitializeEx
    Linux 声音采集的时候内容全都是0
    linux类似系统中编译依赖库出现error trying to exec cc1plus
    C语言练习题2
    进程和任务计划管理
    解决火车头7.6版本无法采集部分https网站处理方法
    PHP输出13位时间戳函数
    destoon取消公司名称怎重复注册的限制
    destoon取消公司名称怎重复注册的限制
    destoon伪静态地址空值优化
  • 原文地址:https://www.cnblogs.com/waw/p/2162996.html
Copyright © 2020-2023  润新知