2011-05-24 82 views
3

我有一个巨大的业务,需要很多页面,控件等应用程序.xap文件很容易上升到50MB。我注意到,每当我加载页面时,.xap文件都被下载到我的本地。但是,我的用户可能会使用3G网络进行连接,因此,如果我们每次打开页面时都下载应用程序,则它必须非常慢。所以我想知道是否有一些方法可以做类似于WPF的部署,只有当版本改变时才能下载到本地。...Silverlight部署到浏览器

欢迎任何其他改善加载速度的建议。

非常感谢

+0

你预期的要设置Web服务器缓存的XAP文件;那就是要走的路。 – 2011-05-24 17:00:07

回答

3

首先和最让你的Web服务器缓存头排序。通常,您可以在IIS管理器中打开ClientBin文件夹并输入HTTP Response Header部分。将有效期限设置为1天(或者如果您在正常工作时间内更新为15分钟)。请注意,仅仅因为内容过期并不意味着它会被重新下载,但它确实意味着在使用之前它会被缓存。如果浏览器已经过期,浏览器会通知服务器当前拥有的版本,从而允许服务器简单地回应“继续并使用它自上次检查以来没有改变”。

对于如此庞大的系统,您应该认真考虑将应用程序分成多个dll项目。然后使用主应用程序项目属性中的应用程序库缓存功能。您需要为每个DLL创建适当的.extmap.xml文件。许多SDK和工具包DLL已经有了它们。这导致这些dll的独立.zip文件被放置在ClientBin文件夹中,而没有合并到一个大的Xap中。这允许您将缓慢移动/永不改变的代码分隔成一组zip,并更频繁地将业务代码更改为另一组。当您更新应用程序时,您只更新更改的zip文件,从而减少新版本的下载负担。 (注意这只适用于基于浏览器的应用程序)。

1

在serverlight项目选项中,使用应用程序库缓存检查Reduce XAP大小。

enter image description here