- 浏览: 649822 次
- 性别:
- 来自: 石家庄
文章分类
最新评论
-
abao1:
老贾 在安装IDEA的过程中,在激活步骤时,按如下操作即可: ...
IntelliJ IDEA 2016注册方法和注册码 -
bo_hai:
./usr/bin/java: symbol lookup ...
jmagick安装步骤 -
wxcking:
不错的, 收藏一下
JAVA使用POI生成Excel文件 -
zgyfh:
大哥,密码是多少啊?zgyfh@tom.com谢谢了!新手学习 ...
WPF做的必备示例 -
记忆无泪:
jiasongmao 写道你的邮箱是多少,我可以发源代码到邮箱 ...
WPF做的必备示例
应用程序库缓存可在用户重新访问网站时帮助改善启动性能。
当您使用应用程序库缓存时,Silverlight 将某些程序集打包成应用程序包外部的外部部件(.xap 文件)。应用程序包中的清单指定启动时所需的程序集,并指示它们是在应用程序包的内部还是外部。
当用户首次访问您的网页时,Silverlight 插件下载应用程序包以及所有需要的外部部件。这些文件添加到浏览器缓存中,以便可以在后续访问时再次使用。
所有下载的文件都受服务器和浏览器中的缓存配置设置约束。在典型的配置中,仅当文件不在缓存中或它们比缓存的版本更高时,才下载这些文件。
库程序集的更改机会远小于应用程序程序集。因此,将它们作为单独的文件进行缓存非常重要。这样,当您更改应用程序代码而非库代码时,许多回访者将只下载 .xap 文件。
Silverlight 随 Silverlight SDK 提供了许多库,而它们不是运行时的组成部分。这些库已预配置为用于应用程序库缓存。在 Visual Studio 中,这些库与运行时程序集一起位于"添加引用" 对 话框的".NET"选项卡上。还可以从 Silverlight SDK 文件夹访问它们。默认情况下,Silverlight SDK 安装在 %ProgramFiles%\Microsoft SDKs\Silverlight 文件夹中。还可以配置自己的程序集,以便支持应用程序库缓存。
应用程序库缓存仅影响应用程序在启动时需要的那些程序集。如果您的应用程序按需加载了一些程序集,该应用程序会始终从服务器检索这些程序集,而始终不会从浏览器缓存中检索。
下面的过程介绍如何启用和使用应用程序库缓存,以及如何配置自己的程序集进行缓存。
启用应用程序库缓存
-
在"解决方案资源浏览器" 中,选择要为其启用库缓存的 Silverlight 应用程序项目。
-
在"项目" 菜单上,选择项目名称 "属性" 。
将显示项目设计器。
-
在"Silverlight" 选项卡上,选择"使用应用程序库缓存减少 XAP 大小" 。
说明: 不能在同一个应用程序中使用应用程序库缓存和浏览器外支持。浏览器外应用程序要求所有启动程序集驻留在应用程序包中。
-
添加对于 Silverlight SDK 中某个库程序集的引用,或者添加对于由有效的 assemblyShortName .extmap.xml 映射文件伴随的任何程序集的引用。
这会导致发生以下操作:
-
程序集引用添加到项目中,其中"复制本地" 值为 True。此值指示在启动时需要此程序集,并且该值与包内程序集使用的值相同。
-
当您生成此项目时,生成操作会将此程序打包成一个单独的 zip 文件,并在应用程序清单中生成 ExtensionPart 元素。
-
当 Silverlight 插件加载应用程序包时,它检查清单以搜索 ExtensionPart 元素,并下载所有对应的文件。如果您的应用程序实现初始屏幕,它将继续运行,直到加载所有外部部件。
-
将程序集配置为用于应用程序库缓存
-
在 程序集所在的相同位置创建一个映射文件。此文件必须与程序集同名,而将 .dll 文件扩展名替换为".extmap.xml"。例如,Silverlight SDK 程序集 System.Json.dll 具有名为 System.Json.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>System.Json</name> <version>2.0.5.0</version> <publickeytoken>31bf3856ad364e35</publickeytoken> <relpath>System.Json.dll</relpath> <extension downloadUri="System.Json.zip" /> </assembly> </manifest>
name 、version 和 publickeytoken 元素必须与对应的程序集元数据相匹配。relpath 元素指示程序集文件名。最后,extension 元素通过 downloadUri 属性指示打包的外部部件的名称。
downloadUri 属性 (Attribute) 值用于填充应用程序清单中的 ExtensionPart. Source 属性 (Property),如下面的清单摘要中所示。
如果 downloadUri 值是一个文件名,则当您添加对程序集的引用时,Visual Studio 提供以下支持:
-
生成系统将程序集打包成具有指定文件名的 zip 文件。此文件将被复制到输出目录中 .xap 文件旁边。
-
如果您使用相同的 downloadUri 文件名添加对于多个程序集的引用,则生成系统会将它们全部压缩成单个 zip 文件。
-
不会自动添加 .zip 扩展名。尽管打包文件是 ZIP 文件,但您可以使用服务器要求的任何文件扩展名。
如果 downloadUri 是一个绝对 URI,生成系统将不会对程序集打包。而是由您负责压缩程序集并将其部署到指定的 URI。这可用于创建由多个应用程序使用的库的单一存储库。但是,当您使用绝对 downloadUri 值时,应考虑以下问题。
-
如果 URI 与 .xap 文件位于不同的域中,则该域必须在其根目录中具有跨域策略文件。有关更多信息,请参见 Silverlight 中的 HTTP 通信和安全 。
-
请 记住,URI 是一个全局唯一标识符,可以引用非常具体的程序集文件。这意味着,您可以并且应该对不同的程序集版本使用不同的 URI。此外,当您在更新后的 URI 中部署新程序集版本时,应继续保持每个版本特定的 URI 和您创建的程序集。这有助于避免当使用 Silverlight 的一个版本构建的 .xap 文件试图加载使用其他版本构建的库时可能产生的问题。
-
在 Visual Studio 中测试应用程序库缓存
-
下载并安装 HTTP 通信监视器,例如,Fiddler 。这样,您就可以查看 HTTP 请求和响应,并验证是否未下载缓存的文件。
-
打开下面的 Windows 功能:
-
Internet 信息服务 (IIS)
-
IIS 元数据库和 IIS 6 配置兼容性
-
ASP.NET
-
Windows 身份验证
IIS 是必需的,因为 Visual Studio 开发服务器在其 HTTP 响应标头中不启用缓存。
-
-
在管理员帐户的上下文中运行 Visual Studio。
-
在包含 Silverlight 项目的解决方案中,加入用于测试的 Web 项目。
-
将 Web 项目配置为使用 IIS,并从 HTTP 通信监视器中启用 localhost 监视。(例如,Fiddler 提供了一个代理 URL,您可以用它来替换"启动 URL" 值中的"localhost"。)
-
执行以下操作并观察产生的 HTTP 通信:
-
在 Visual Studio 中运行您的应用程序。
-
在浏览器中按 F5 以重新加载页面。
-
在另一个浏览器窗口中打开该页的 URL。
-
在 Visual Studio 中重新生成解决方案,然后在浏览器中重新加载页面。
在初始下载之后,对于应用程序包和库文件的其他请求将不会生成附加的下载通信。而是请求由缓存的副本完成。但是,当您重新生成应用程序时,将检测到更改并且下载新副本。
-
发表评论
-
silvelright酷站
2011-03-22 18:47 775http://completit.com/# -
silverlight翻转代码
2011-03-13 18:46 1075using System; using System.Net ... -
silverlight独立存储示例
2011-03-07 17:17 1022void CreateDir(string dirNam ... -
silverlight SDK和toolit中控件英文如何转换为英文
2010-11-11 15:50 965解决方法: 设置 ... -
Silverlight4:网络地图服务
2010-10-16 11:01 1532Bing Maps与Google Earth一样 ... -
通过JS创建silverlight对象
2010-10-12 13:04 1603前言: 对于我们开发的silverlight应用来讲,有的时 ... -
silverlight childwindow源码
2010-09-18 21:17 1938<!-- // (c) Copyright Micro ... -
精彩的 Silverlight 开源项目
2010-08-18 14:32 2892Silverlight 物理模型 http://www.c ... -
MEF程序设计指南五:迟延(Lazy)加载导出部件(Export Part)与元数据(Metadata)
2010-08-12 10:34 901本文章非原创,转载自: 作 者:Beniao 文 ... -
MEF程序设计指南四:使用MEF声明导出(Exports)与导入(Imports)
2010-08-12 10:03 574本文章非原创,转载自: 作 者:Beniao 文 ... -
MEF程序设计指南三:MEF中组合部件(Composable Parts)与契约(Contracts)的基本应用
2010-08-12 09:52 510本文章非原创,转载自: 作 者:Beniao 文 ... -
MEF程序设计指南二:Silverlight中使用CompositionInitializer宿主MEF
2010-08-12 09:24 826本系列文章非原创,转载自: 作 者:Beniao ... -
MEF程序设计指南一:在应用程序中宿主MEF
2010-08-12 09:17 988本系列文章非原创,转 ... -
Prism动态模块加载
2010-08-10 10:27 1554这篇介绍模块在silverlight的特殊应用. sil ... -
Silverlight中Json数据的转换方法(中文)
2010-08-04 11:36 1210[DataContract] public clas ... -
silverlight万花筒效果
2010-07-28 16:14 835见附件。 -
silverlight如何将颜色字符串转换为颜色
2010-07-02 10:42 1503public class ColorUtil { ... -
silverlight中Tab转Enter的实现方法
2010-06-04 17:38 1696silverlight项目中要求界面全键盘操作,并且在光标移动 ... -
在两个Silverlight应用间数据通信(包括与Flash通信)
2010-05-13 17:06 976声明:该博文转载自:http://daizhj.blog.51 ... -
silverlight和js相互调用
2010-05-13 16:56 1634步骤一:在silverlight后台代码类中声明被js调用的方 ...
相关推荐
5.2 global.asax应用程序文件 5.2.1 应用程序事件 5.2.2 演示应用程序事件 5.3 ASP.NET配置 5.3.1 machine.config文件 5.3.2 web.config文件 5.3.3 设置 5.3.4 5.3.5 5.3.6 5.3.7 通过编程读写...
5.2 global.asax应用程序文件 140 5.2.1 应用程序事件 141 5.2.2 演示应用程序事件 143 5.3 ASP.NET配置 144 5.3.1 machine.config文件 144 5.3.2 web.config文件 147 5.3.3 设置 150 5.3.4 150 ...
》针对.NET Framework 4.0和多核编程进行了全面更新和修订,是帮助读者深入探索和掌握公共语言运行时、C#和.NET开发的重要参考,同时也是帮助开发人员构建任何一种应用程序(如Microsoft Silverlight、ASP.NET、...
》针对.NET Framework 4.0和多核编程进行了全面更新和修订,是帮助读者深入探索和掌握公共语言运行时、C#和.NET开发的重要参考,同时也是帮助开发人员构建任何一种应用程序(如Microsoft Silverlight、ASP.NET、...
》针对.NET Framework 4.0和多核编程进行了全面更新和修订,是帮助读者深入探索和掌握公共语言运行时、C#和.NET开发的重要参考,同时也是帮助开发人员构建任何一种应用程序(如Microsoft Silverlight、ASP.NET、...
》针对.NET Framework 4.0和多核编程进行了全面更新和修订,是帮助读者深入探索和掌握公共语言运行时、C#和.NET开发的重要参考,同时也是帮助开发人员构建任何一种应用程序(如Microsoft Silverlight、ASP.NET、...
Activity Activity是一个应用程序组件,提供一个屏幕,用户可以用来交互为了完成某项任务,是一个负责与用户交互的组件 SSH 为 Struts+Spring+Hibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架。...
8.6 数据库驱动的web应用程序示例284 8.7 小结287 第9章 使用sqldatasource控件288 9.1 创建数据库连接289 9.1.1 连接到microsoft sql server289 9.1.2 连接到其他数据库292 9.1.3 在web配置文件中保存连接字符串293...