我们的应用程序下载大约 15meg 的图像并将它们显示在 html Canvas 中。我们正在进行一些压力测试,发现在打开大约 10 个选项卡后,如果我们将计算机置于 sleep 模式,当它回来时, Canvas 是空白的 - 它只显示纯白色(这种情况并非每次都会发生) ,但非常频繁)。
我们将图像保存在 JavaScript Image 对象中,我检查了这些对象中的内存,它们似乎仍然有效。我尝试通过在错误发生之前和之后拍摄快照来使用 Chrome 内存分析,在某些情况下使用的内存较少,在其他情况下使用的内存较多,因此这似乎并没有告诉我太多信息。
我很好奇是否有人以前见过这个,即使没有,是否有人有关于调试类似内容的指示。如果有一种方法可以让我们确定是否发生了错误,这样我们就可以触发图像的重新加载,那将是完全足够的,但恐怕在我找出导致错误的原因之前,我什至不知道是什么尝试检查。
最佳答案
@rtpg - 绘制循环继续运行,但不会显示任何内容
由于某种原因, Canvas 将不再更新。我无法确定问题何时发生,但确实弄清楚了如何让 Canvas 再次开始显示图像。需要我调整 Canvas 大小(我将宽度更改一个像素),然后重新绘制(这是令人尴尬的黑客行为)。我目前通过 setTimeout 将其设置为每 30 秒运行一次,但一旦我可以验证从 sleep 模式中退出时被调用,可能会更改为 window.onfocus。
关于javascript - 从待机模式唤醒后,Chrome Canvas 变为空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18347683/