我们有一个单页网站,该网站使用Barba.js进行Ajax加载的页面过渡。我们在多个页面上都有WebGL背景动画,并且一次只加载一个动画时,它运行良好。我们遇到的问题是,由于这是一个单页网站,所以当您离开某个页面导航时,上一页的WebGL动画仍在运行。每次您导航到带有WebGL内容的新页面时,这都会导致内存使用量增加。
处理此问题的最佳方法是什么?我花了整整一周的时间进行研究,因此我知道WebGL上下文仅是垃圾收集。每个人都在说要保存上下文以便以后显示,但这正是我要避免的事情,因为如果我尝试仅保留所有WebGL上下文,它将占用大量内存并降低整个站点的速度。
在加载下一页之前,我尝试了所有可能发现的脏方法,以尝试查找和删除对上下文的所有引用。经过3天的尝试,我设法减少了内存使用量,但效果不是很好。我想找到一个更好的解决方案。
在这一点上,我正在寻找有关如何将所有WebGL代码重构为一个一致结构的建议,以便可以在需要时打开和关闭每个动画,从而一次仅一个动画正在使用内存。 。有可能吗?