1

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

例子

对于这个特定问题,假设一个集合在 HTML 中呈现为一个元素,每个集合项都有#container一个 class 的子元素: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>

我创建了一个动画小提琴来演示这种场景。想象一下,对集合的更改发生在服务器上,而 JavaScript 只是对其作出反应。

4

1 回答 1

0

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

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

于 2013-02-10T21:59:33.183 回答