需求比较特别,是个比较复杂的网络拓扑图,要画得比较整齐。找了很久都没有找到现成的库。所以就用SVG.js自己撸了一个,但是在数据变多的时候画图时间就变得很长,现在的数据已经接近10s,数据还有继续增长的可能。
当初也是一时脑抽选了SVG,可能选Canvas会比较好,而且也并没有特别需要SVG的事件处理能力之类的需求,但是现在时间有限,想看看有没什么办法可以临时处理一下。
想在后台渲染好之后把svg的xml传到前台显示,发现node.js上由于缺乏DOM相关的API,使用SVG.js作者推荐的svgdom来做DOM API的polyfill,发现各种图形的定位已经乱掉了。JSDOM也好像缺乏对SVG的支持。至于PhantomJS或者headless Chrome这种有点复杂,需要点时间学习。
试过把不涉及DOM的抽出来放到WebWorker上运行,绘图还是需要1~2s。这个图还是要放在首页的,总不能让用户一进来先卡个几秒钟吧。
有没有大神造过类似的轮子能提供点优化的思路,先谢了~~
d3.js?