Silverlight HTML-JS-DOM Bridge:真实世界的用例?

时间:2010-08-14 22:33:44

标签: javascript silverlight web-applications rich-internet-application

我在网上看到了很多东西,它们展示了如何通过将任务交给它以利用线程,操纵DOM,实现Comet类功能等来使用Silverlight来增强网页的概念验证教程。

这一切看起来都非常有趣,然而,任何人都有任何现实世界的用例要分享,因为我似乎找不到很多。

2 个答案:

答案 0 :(得分: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交互来遍历当前页面,然后基于此生成标签的动画云。

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

答案 1 :(得分:1)

我使用DOM-Bridge的一件事是提升事件。承载我的应用程序的html页面订阅这些事件并因此做出反应。

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

如果你不能使用ASP.Net,在Weblight中查询和接收数据要比在Javascript中更容易且不易出错(并且也更快,因为你可以使用优化的“binary-xml”编码器)。

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