2015-11-04 103 views
0

新的数据我想更新D3作为这样一个图表(或其他一般可视化库):例如一个项目D3交互式图形 - 更新图表从服务器

  1. 用户点击图
  2. 新数据从服务器
  3. 使用新的数据返回,追加新的边和节点到旧图形的节点
  4. 可能改变一些旧节点,例如使“B”的属性红色在下面的说明图中。

此图中所示: Illustration image - updating a graph

我的问题是:如何才能做到这一点?用什么技术和步骤?我在另一个关于实时更新的问题上看到您可能会使用WebSocket。但就我而言,这不是实时更新。那么WebSocket仍然是正确的选择,还是有更好的选择,比如AJAX?

谢谢!

回答

0

如果你只是要更新用户驱动事件的图形,如点击悬停等,然后使用websockets将是一个矫枉过正。 WebSocket用于向客户端发送数据,当客户端可能不知道何时更新并且服务器具有该信息时。

因此,例如。如果您想更新另一个人的图表,当某人更新他的图表时,Google Docs会显示某些图表,那么您需要使用WebSockets。

否则,如果是单个页面需求,则可以使用jQuery。如果你有一个更大的项目,你可以使用angular,这对D3也有很好的数据绑定。但是,是的,你基本上选择AJAX调用而不是WebSockets。

+1

完全矫枉过正,直到此图不是多用户导向的 – Appeiron

+0

更新这些结构中的数据以便不重写整个集合但扩展它的主要事情。这样可以防止您丢失每个图形项目的本地数据并链接到它们。 – Appeiron

+0

谢谢。这是一个单人应用程序,所以如您所说WebSockets不是正确的工具。它将与React一起使用。 – lukmac