首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在页面刷新时清除three.js (或WebGL)

如何在页面刷新时清除three.js (或WebGL)
EN

Stack Overflow用户
提问于 2013-07-31 15:59:51
回答 2查看 1.9K关注 0票数 0

我们有一个相当广泛的three.js应用程序,使用了相当多的材料、场景、呈现缓冲区等。我们只能刷新/重新启动它几次,而且它会在几个问题中的一个问题上失败;所有这些都等于耗尽了WebGL资源。

我在window.onbeforeunload上添加了一个清理例程,它在支持它的对象上调用that ()方法;材料、renderBuffers和几何图形。我不相信我已经抓住了所有的资源,但这似乎已经足够了,因为我每隔5秒钟就能刷新半个小时。

问题是:1触发的最佳方法是什么?window.onbeforeunload看起来相当有效,但也许有理由选择其他的方法?

2执行这样一次清理的最佳方法是什么?最好在清理所有WebGL资源的呈现器上进行处理。(我不关心javascript对象,因为浏览器似乎很有能力清理这些对象。)

我在这里见过相关的问题(如有关清理场景的问题),但我对彻底的清理感兴趣。我想在较低的WebGL级别上的任何答案对于这个全局清理也是有效的;这可能不只是针对一些three.js资源,因为它无法计算出这些较小的清理的范围。

EN

回答 2

Stack Overflow用户

发布于 2013-07-31 22:48:10

通常,当一个网页被卸载时,执行任何类型的清理并不是该页面的责任;它的资源只是一次性被丢弃。否则,草率或恶意页面经常会造成麻烦。WebGL也没什么不同。

您应该将您所看到的行为视为浏览器错误,找出一个简单的测试页面来演示问题,并向浏览器供应商报告。这将解决每个人的问题,并减少您的维护负担,从长远来看。

票数 1
EN

Stack Overflow用户

发布于 2013-08-01 22:27:40

这是一个已知的问题在铬28,并已修复在下一个版本。您可以下载测试版并亲自查看。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17975261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档