3

我在网上看到了很多东西,它们展示了如何使用 Silverlight 来增强网页的概念证明教程,方法是将任务交给它以利用线程、操作 DOM、实现类似彗星的功能等。

这一切似乎都很有趣,但是,有没有人有任何真实世界的用例可以分享,因为我似乎找不到很多。

4

2 回答 2

4

当然。我使用 HTML DOM 交互有几个原因。

首先,将现有 ASP.NET 应用程序迁移到 Silverlight 时。在我们使用的架构中,该应用程序非常基于 AJAX,并带有大量回调。我们无需为 Silverlight 重新发明轮子,而是能够使用 DOM 交互来提供一个桥梁,以便 Silverlight 控件可以以类似的方式回调。这意味着使用 ASP.NET 安全和视图状态信息从服务器获取信息并拉入 Silverlight 应用程序。我们已经以 JSON 格式返回数据,因此可以直接解析回 Silverlight 应用程序。

另一个例子是与第三方控件和服务的交互。例如,Google Analytics 提供了丰富的页面跟踪功能。这个项目提供了一个很好的例子:

http://silverlightanalytics.codeplex.com/

即使您在 Silverlight 中运行应用程序可以集成的位置,您实际上也是在跟踪点击、操作和页面浏览量。

我使用过的另一个地方是 Silverlight 不用作应用程序,而是更多地用作页面上的部件或控件。虽然 Silverlight 控件可以使用本地通信相互通信,但这不适用于其他非 Silverlight 控件。通过使用 HTML-DOM 桥,您可以轻松地在组件之间构建基于 JavaScript 的通信。例如,也许 Silverlight 控件是一个交互式世界地图,可让您浏览到某个区域。当您选择该区域时,它会引发一个 JavaScript 事件,其他控件会根据该原因进行侦听和更新。

您还可以将 Silverlight 用作类似于 Captcha 控件的控件,其中您的表单使用 DOM 桥来验证用户对 Silverlight 应用程序的输入。

我见过标签云应用程序,其中 Silverlight 控件使用 DOM 交互来遍历当前页面,然后基于此生成动画标签云。

希望那些提供一些真实世界的例子。

于 2010-08-18T10:38:58.637 回答
1

我使用 DOM-Bridge 的一件事是引发事件。托管我的应用程序的 html 页面订阅这些事件并做出相应的反应。

例如,我的应用程序接收并显示来自 WCF Web 服务的销售数据。当数据发生变化时,会引发一个事件,以便页面的其余部分可以显示其他内容。

如果您不能使用 ASP.Net,那么在 Silverlight 中询问和接收来自 Web 服务的数据比在 Javascript 中更容易且更不容易出错(而且速度也更快,因为您可以使用优化的“binary-xml”编码器)。

我认为 DOM 桥在您分发 Silverlight 应用程序以嵌入任意网站时最有用,在这些网站您无法对后端环境做出假设,但需要提供与 SL 应用程序交互的能力。

于 2010-08-24T06:57:02.807 回答