【问题标题】:Will Silverlight take too long to load my business app?Silverlight 加载我的业务应用程序需要太长时间吗?
【发布时间】:2010-11-10 16:01:10
【问题描述】:

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

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

有没有办法解决这个问题?

【问题讨论】:

    标签: silverlight-4.0 loading


    【解决方案1】:

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

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

    有多种产品和技术可以为您的 xap 添加额外的压缩(因为它们实际上只是 zip 文件)

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

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

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

    【讨论】:

    • 关于 Telerik 工具:我假设您正在谈论 Telerik Assembly Minifier。不久前我正在看它,对这个名字很感兴趣,但我认为它只会“缩小” Telerik 库。例如,当您使用 Telerik 控件库时,它将将该库缩小为仅包含您在应用程序中实际使用的 (Telerik) 控件,而不是作为通用 dll 缩小器来执行类似于包含在xap。
    • 是的,我就是这么想的……忘记了。我记得还有另一种产品……啊,这里是:componentone.com/SuperProducts/XAPOptimizer
    【解决方案2】:

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

    我从未尝试过,但如果你用谷歌搜索,你会发现很多文章。例如

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

    【讨论】:

      【解决方案3】:

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

      当然,如果新页面具有需要包含额外 dll 的功能/使用控件或组件,那将对其造成影响,但是当您谈论可能增长的一个应用程序时到数百页,我认为它们会有些连贯。

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-13
        • 1970-01-01
        • 1970-01-01
        • 2013-06-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多