我需要使用JavaScript可视化动态集合,是否可以使用Reactive Extensions实现?

时间:2013-02-09 22:01:43

标签: javascript system.reactive reactive-extensions-js

我正在编写这个Web应用程序,我需要通过JavaScript可视化过滤,排序和分页(在服务器上)集合(计划使用Isotope来呈现集合)。这些集合是动态的,即它们从某些项目开始,但它们的内容可能会在整个应用程序的生命周期中发生变化。我可以通过Reactive Extensions for JavaScript在服务器上观看集合来实现此功能吗?如果是这样,怎么样?

实施例

对于这个特殊问题,假设一个集合在HTML中呈现为一个元素#container,每个集合项都有一个类item的子元素:

<div id="container">
  <div class="item">Item 1</div>
  <div class="item">Item 3</div>
</div>

如果“Item 2”随后被添加到集合中并且“Item 1”在服务器上被删除,那么JavaScript应该通过将更新后的集合呈现为HTML来做出反应:

<div id="container">
  <div class="item">Item 2</div>
  <div class="item">Item 3</div>
</div>

我创建了一个动画fiddle来演示这种情况。想象一下,对集合的更改发生在服务器上,而JavaScript只是对它做出反应。

1 个答案:

答案 0 :(得分:0)

我发现Reactive Extensions可能有助于解决这个问题,但它并不关心服务器和客户端之间的通信。应用RX的一种可能方式是在服务器和客户端之间建立一个桥接器,RX事件可以通过它流动。 SignalR是实施这座桥梁的可能选择。甚至还存在一个项目SignalR.Reactive,它以这种方式结合了SignalR和RX。

我认为解决问题的真正问题是如何在服务器上发布更改。我发现RavenDB是我选择的数据库,它有一个用于观察数据变化的API,所以希望我能够围绕这个设计一个方案。一旦解决了这个问题,我设想在RX和SignalR的帮助下发布对客户的更改是相当微不足道的。