0

我有一个想在网格中显示的 Silverlight 应用程序。Silverlight 应用程序显示其内容的方式取决于每个网格行中记录的唯一 ID。不幸的是,为网格中的每一行重新下载 XAP 文件。对于 700KB 的大小,这确实会影响性能。是否可以一次下载 XAP 文件,然后为网格中的每一行重新使用它?

4

3 回答 3

1

下载 XAP 后,Silverlight 将在每个 Silverlight 控件实例本地缓存程序集等。如果您创建 Silverlight 控件的另一个实例,那么它又拥有自己的域,而它又会照看这些域。

我的建议是抽象出您需要的部分并将它们烘焙到单独的 xaml 中,然后将它们加载到您最需要它们的区域。如果您仍然需要一个中央 .xap 来处理编组/事件管理等,那么在 Silverlight 3 中,我们已经放置了一个本地连接 API,它允许其他 Silverlight 实例在本地的一个浏览器页面中相互通信(即 SilverlightA 可以在 index.html 中与 SilverlightB 交谈)

如果您愿意,这可以让您建立一种本地代理。

Scott Barnes / Rich Platforms 产品经理 / Microsoft。

于 2009-05-02T03:56:10.300 回答
0

我不确定你能不能。理论上它应该被缓存,但在这种情况下,理论似乎不值得蹲下。

这完全取决于 <object> 标签与它的各种参数的行为方式,这是(另一个)silverlight 的“稀疏”记录区域之一。

于 2009-04-28T17:08:57.777 回答
0

这是可能的,但不容易做到。您可以下载 xap 并将其保存到 IsolatedStorage 并在每次需要一个引用缓存的 xap 时创建一个 silverlight 主机,但您只有 1MB 可用空间,并且不能保证是否有来自同一域的其他 silverlight 应用程序。

鉴于你所描述的,我仍然认为做你想做的事没有任何价值。我认为你有它倒退。

于 2009-04-28T17:32:28.250 回答