Silverlight是否需要很长时间来加载我的商业应用程序?

时间:2010-11-10 16:01:11

标签: silverlight-4.0 loading

我认为Silverlight 4.0是构建业务应用程序的不错选择。

然而,我害怕的一部分是装载。如果我理解正确,Silverlight会将所有页面编译成一个二进制文件,在加载时加载到客户端上。现在只需几页就可以了,但如果我达到数百页,这个加载时间会变得非常长吗?当我查看Infragistics和Telerik的示例时,他们需要10-15秒才能加载这几个示例。我发现这是不可接受的。

有解决方法吗?

3 个答案:

答案 0 :(得分:4)

是的,这确实是一个问题。但是二进制文件(xap文件,实际上只是dll的zip文件)是通过标准HTTP提供的,因此它们当然可以缓存(可通过Web服务器进行配置)。因此,第一次下载可能需要15秒,但所有后续加载应该基本没有下载时间(除非您发布更新)。

此外,Telerik示例中引用了所有dll,您可以在自己的项目中删除不需要的dll以减小整体大小。

有几种产品和技术可以为你的xaps添加额外的压缩(因为它们只是zip文件)

http://www.google.com/search?q=silverlight+xap+compactor.....

我认为Telerik也提供了一种这样的工具。

最后,在4.0中,您可以将某些系统dll设置为按需加载而不是预先加载,这可以缩短下载时间(但我还没有亲自使用过) - 在项目属性中使用它。

答案 1 :(得分:2)

也可以使用多个xap文件,因此您可以将应用程序拆分为单独的xap文件。

我从未尝试过这个但是如果你谷歌那么你会发现很多文章。 E.g。

http://dotplusnet.blogspot.com/2010/09/how-to-load-multiple-xap-files-in.html

答案 2 :(得分:0)

首先 - xap大小可能会膨胀的是dll和你自己的任何导入资产(大图像等)。因此,如果您有一个相对同质的站点,基于相同的外观/模板,添加新页面不会增加整体大小,因为所需的组件已经在xap中,并且添加内容主要由文本组成。

当然,如果新页面具有功能/使用控件或需要包含额外dll的组件,那将会减轻它的负担,但当你谈论可能会增长的一个应用程序时对于数百页,我认为它们会有些连贯。

您还可以让Silverlight应用在需要时动态加载内容。如果您可以从代码中分离内容和/或内容描述符/资产,您应该看看是否可以将其存储在数据库或其他存储库中,并仅在需要时才获取它。

还可以在运行时动态加载其他xap,允许您最初拥有轻量级xap加载,然后根据需要引入其他xap,从而根据用户在此期间需要的内容分散加载时间。 “会话”。