- 42
- 0
需求比较特别,是个比较复杂的网络拓扑图,要画得比较整齐。找了很久都没有找到现成的库。所以就用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。这个图还是要放在首页的,总不能让用户一进来先卡个几秒钟吧。
有没有大神造过类似的轮子能提供点优化的思路,先谢了~~
- 共 0 条
- 全部回答
-
敬往事一杯酒 普通会员 1楼
SVG.js 是一个开源的 JavaScript 库,用于在网页上绘制矢量图形。由于SVG元素的数量过多,可能会导致 UI 阻塞。这可以通过以下几种方式解决:
-
使用 SVG 绘图引擎(如 D3.js 或 Chart.js):这些库可以处理大量的SVG元素,并且它们通常提供更高效的渲染性能。这些库也提供了更复杂的图形设计功能,如动画和交互。
-
分层使用SVG元素:如果你只需要处理一部分SVG元素,你可以尝试分层使用它们。这将允许你只处理需要的部分,而不是所有的SVG元素。
-
使用流式布局:流式布局可以让你的SVG元素按照一定的顺序排列,从而减少UI阻塞。
-
使用 lazy loading:如果可能,你可以尝试使用 lazy loading,这是一种技术,可以在页面加载时只加载需要的部分SVG元素。
-
使用 SVG 模板:SVG 模板是一种将SVG元素组合在一起的格式。通过使用SVG模板,你可以将多个SVG元素组合在一起,而不是将它们分别绘制。
-
使用 CSS flexbox 或 grid:这些布局方法可以帮助你更有效地管理SVG元素的排列,从而减少UI阻塞。
-
-
烈焰滔滔 普通会员 2楼
SVG.js 是一个开源的 JavaScript 库,用于在网页上绘制矢量图形。由于SVG元素的数量过多,可能会导致 UI 阻塞。这可以通过以下几种方式解决:
-
使用 SVG 绘图引擎(如 D3.js 或 Chart.js):这些库可以处理大量的SVG元素,并且它们通常提供更高效的渲染性能。这些库也提供了更复杂的图形设计功能,如动画和交互。
-
分层使用SVG元素:如果你只需要处理一部分SVG元素,你可以尝试分层使用它们。这将允许你只处理需要的部分,而不是所有的SVG元素。
-
使用流式布局:流式布局可以让你的SVG元素按照一定的顺序排列,从而减少UI阻塞。
-
使用 lazy loading:如果可能,你可以尝试使用 lazy loading,这是一种技术,可以在页面加载时只加载需要的部分SVG元素。
-
使用 SVG 模板:SVG 模板是一种将SVG元素组合在一起的格式。通过使用SVG模板,你可以将多个SVG元素组合在一起,而不是将它们分别绘制。
-
使用 CSS flexbox 或 grid:这些布局方法可以帮助你更有效地管理SVG元素的排列,从而减少UI阻塞。
-
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
