我遇到了一个奇怪的问题,我写了一个力导向的图形布局脚本,我想看看节点放置是如何近乎实时地发生的,这就是为什么我只计算力和重绘元素一次使用 requestAnimationFrame 刷新屏幕(虽然我知道使用 'while' 语句一步计算布局并立即绘制它会更有效)。
所以问题是,当它在我重新加载页面后第一次发生时,它按照我希望它的工作方式工作:例如 60 节点图形计算需要 8879 毫秒,我能够看到所有节点如何移动到它们的最终目的地,但是当我尝试在不重新加载页面的情况下重建相同的图表时,每个后续计算都会发生得更快:
8879ms
5797ms
4649ms
4330ms
3923ms
....
3046ms
....
etc
因此节点几乎立即变得稳定。小图的差异可能高达 10-20 倍!16 节点图:
3041
1583
1101
818
660
551
524
436
373
360
352
305
167
重新加载页面后,该过程重复。所以我想知道为什么它首先会发生(浏览器是否以某种方式缓存和优化代码?)以及如果可能的话如何避免它。在 IE、FF 和 Chrome 中尝试过,结果相同。
谢谢