arcgis开发笔记[silverlight提高访问速度,减小XAP]

用户打开同一SilverLight站点时,由于每次都要重新加载SilverLight应用程序包(.xap文件),因此会大大的降低用户体验。因此微软在SilverLight 3.0版本中提供了应用程序集缓存(Application Library Caching),可以解决这一缺陷。
  应用程序集缓包括两个部分:
    1、SilverLight本身的程序集缓存;
    2、用户自定义程序集缓存。

第一种方式MSDN已经提到,只要在IDE设置一下即可

第二种方式操作时容易出错,具体例子如下:

假如项目引用的是库文件,如c:\project\ Microsoft.Windows.Controls.dll,那就在c:\project\ 目录下[不能在silverlight工程的bin\debug下]建立Microsoft.Windows.Controls.extmap.xml,具体内容参考如下:

  <?xml version="1.0"?>
  <manifest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <assembly>
    <name>Microsoft.Windows.Controls</name>
    <version>2.0.21027.1502</version>
    <publickeytoken>31bf3856ad364e35</publickeytoken>
    <relpath>Microsoft.Windows.Controls.dll</relpath>
    <extension downloadUri="Microsoft.Windows.Controls.zip" />
   </assembly>
  </manifest>

假如项目引用的是依赖的库代码工程,如c:\project\demoLib(库必须强名),在demoLib工程中加一个内容内容demoLib.extmap.xml(这个名字和库输出的dll一致即可),然后选择输出到执行目录, demoLib.extmap.xml的内容和上面类似

多个库可以输出到一个压缩包中,只要各个组件的<extension downloadUri=填写一样的压缩名字就行

编译项目后,可以在ClientBin下看到以上设置的zip文件

可以使用Fiddle或HttpWatch查看请求的情况,可以看到,以上的zip文件都会缓存起来,xap文件显著减小,以后只要更新xap文件就行了

你可能感兴趣的:(silverlight)