在D3强制布局渲染之前等待消息

时间:2013-09-14 06:49:53

标签: javascript extjs d3.js force-layout

我使用d3.js实现了力布局。然而,布局根据UI中的用户选择而改变,该用户选择对服务器进行新的调用并获取新数据并再次绘制力布局。在此之前,用户必须等待。有没有办法在图表加载之前向用户显示等待消息。此布局也是extjs组件的一部分,因此等待消息只需要应用于该特定组件。我会使用Ext js等待消息,但我没有事件可以监听隐藏并显示等待消息,因为图形呈现与ext js无关。我研究了很多,在d3.js中找不到任何这样的功能。但应该有一些解决方法,我只是无法搞清楚。

1 个答案:

答案 0 :(得分:1)

这是相对简单的做法,尽管D3没有为它提供任何明确的功能。当用户进行选择并发送异步请求以获取更多数据时,请启用“等待”对话框。然后,在处理接收数据的函数内部,禁用它。而已。在代码中,它看起来像这样。

userSelector.on("click", function() {
  enableWaitDialog();
  d3.json("newjson.json", function(error, data) {
    // do something with the new JSON
    disableWaitDialog();
  });
});