Silverlight体积优化

简介: Silverlight体积优化Silverlight是运行在客户端的富媒体应用程序,他可以使表现形式更加的丰富多彩,相应的开发人员需要写大量的XAML、代买添加很多图片以及一些其他的资源文件。这就直接导致了应用程序体积的增大。

Silverlight体积优化

Silverlight是运行在客户端的富媒体应用程序,他可以使表现形式更加的丰富多彩,相应的开发人员需要写大量的XAML、代买添加很多图片以及一些其他的资源文件。这就直接导致了应用程序体积的增大。在所有的文件都要从服务器上下载的情况下,这是一个极为严重的问题。如果你的应用大于5MB 加载时间过长的话会直接导致访客的流失。

这里将谈论一下如何减少应用程序的体积。

体积优化



移除未使用的程序集
Visual Studio在创建sl应用后默认情况下加了很多的程序集,有些可能是你根本就用不上的。
首先除了System引用将所有其他的删除掉,然后重新编译应用,将缺失的DLL重新添加回来。有很多的错误可能是由于添加了命名空间的引用,这里有一个简单的来去掉未使用的命名空间(usings),右键点击一个类名,然后选择Organize usings / Remove unused usings。

重新打包XAP文件“越小越好”
我们知道Silverlight的XAP包实质上就是一个标准的ZIP包,包内有一个AppManifest使得他在Silverlgith运行时中可正确的被解析。但是Visual Studio 2008在做XAP打包时并没有做压缩。
这里我们要做的是Winzip活Winrar将这个XAP解包,然后再做压缩打包,将扩展名改成xap替换原始文件。

将素材放在sl应用外部
在之前方式中我们都是针对一个sl应用做的,但是当你在构建模块话的sl应用时,将素材文件放在Silverlight XAP包的外部效果会更好。(或者放在外部ZIP包中再做压缩,让sl应用动态获取。更多请看“Silverlight从Zip包中获取文件未完成
使用程序集缓存
使用程序集缓存的办法很简单只需要在sl的属性页面,将library Caching设置为true即可


(更多请看“ silverlight自定义程序集缓存未完成

动态加载XAP
在silverlight开发的过程中可以将模块话,分解成多个xap文件,有一个主xap来调用其他的xap做动态的加载.
举一个例子,让我们看看Photoshop这个网站,他是用flex技术完成的。

我们可以看出他的容器、类库以及样式都是动态的加载进去的。
在silverlight中可以用简单的loadingXAP来完成(具体请查看“动态加载XAP文件”),或者使用第三方的框架来完成,比如“Managed Extensibility Framework”、“Prism”。
这里我使用了Prism框架来开发我的一个项目,可以来看一下效果。

可以看出各个模块是逐个加载的。



参考资料

http://www.cnblogs.com/hackerttao/archive/2009/10/16/1584537.html
http://msdn.microsoft.com/en-us/library/dd833069%28VS.95%29.aspx


作者:Nasa 
文章出处:我和未来有约会 (http://nasa.cnblogs.com/
版权声明:本文的版权归作者与博客园共有。转载时须注明本文的详细链接,否则作者将保留追究其法律责任。
相关文章
|
缓存 Windows
一起谈.NET技术,Silverlight发布时的优化工作(下)
  相关文章:Silverlight发布时的优化工作(上)   一、 项目资源优化   资源在silverlight中存在形式:   Resource —— 资源会被打包在程序集内部   Content——资源会被打包在Xap包里面   None——资源既不会被集成到程序集内,也不会打包到xap包中。
944 0
|
Web App开发 缓存 UED
一起谈.NET技术,Silverlight程序集缓存巧妙设置 优化用户体验
  Silverlight中的程序集缓存可以将一些独立的程序集放在XAP包外边并可以缓存在客户端的浏览器中,这样就可以减少程序启动时下载XAP包的时间。默认情况下Silverlight并没有开启程序集缓存,因此需要自己动手开启。
1137 0
|
前端开发 API 定位技术
ArcGIS API for Silverlight 鼠标移入移出地图要素弹出窗口(优化处理)
     在之前博客里的ArcGIS API for Silverlight 弹出框实例中,是通过点击地图要素,弹出框,但是由于没有控制元素个数,只是通过显示隐藏来进行的话,在鼠标移入和移出操作中,会出现鼠标移入的时候,总不能立刻弹出框,而是需要多次才行,用户体验较差,现在通过控制加入一个弹出框,移出时去除刚加入的弹出框,严格控制弹出框个数来实现。
1030 0
|
JavaScript 前端开发 搜索推荐
Silverlight:分包下载及SEO优化方案
一、按模块分包 一般大型的Silverlight应用,都会按模块分解成多个silverlight project,编译后就有多个xap包,然后在需要用到的场景按需加载。我近期开发的这个项目不需要全站Silverlight,而是aspx混合silverlight,说得更白点,就是把相应的子模块xap包嵌入aspx. 这样分包就简单多了:直接用js控制dom元素,修改object元素中的source,动态设置成不同的xap即可实现无刷新的加载不同模块。
720 0
|
JavaScript 前端开发 UED
Silverlight用户体验优化
Silverlight用户体验优化  在发布Silverlight应用后有一个需要考虑的重要问题是:假如访客没有安装Silverlight,你就需要提供无缝的Silverlight安装体验,使用户体验中从头到尾都完美地融为一体。
901 0
|
搜索推荐 JavaScript SEO
Silverlight SEO优化
Silverlight SEO优化SEO优化 2008年10月份,微软发布了针对Silverlight应用程序进行搜索引擎优化的指导文档,该文档描述了对Silverlight应用程序进行搜索 引擎优化一些最佳实践。
906 0

热门文章

最新文章