我们在调查 iOS Mobile Safari 上的低内存崩溃时遇到了这个问题。
在大型 HTML5 应用程序(如 HTML5 游戏)上最明显的是,我们发现浏览器存在内存泄漏,每次刷新时内存都会不断增加。
在我们的例子中,应用程序运行时使用了大约 300MB 的实际内存,每次刷新都会增加大约 100MB。
在 iPad mini 和 iPad4 上最明显的是,它会在几次刷新后立即使 Mobile Safari 崩溃。
我们在调查 iOS Mobile Safari 上的低内存崩溃时遇到了这个问题。
在大型 HTML5 应用程序(如 HTML5 游戏)上最明显的是,我们发现浏览器存在内存泄漏,每次刷新时内存都会不断增加。
在我们的例子中,应用程序运行时使用了大约 300MB 的实际内存,每次刷新都会增加大约 100MB。
在 iPad mini 和 iPad4 上最明显的是,它会在几次刷新后立即使 Mobile Safari 崩溃。
经过漫长而痛苦的努力,我们发现问题是由 webkit 上的内存泄漏引起的。
当您使用 matchMedia 侦听器并且在卸载之前未取消注册事件侦听器时,就会发生这种情况。
要修复它,要么根本不使用 matchMedia,要么确保在页面的卸载时取消注册 matchMedia 事件侦听器。
我们发现该问题已在https://code.google.com/p/chromium/issues/detail?id=113983报告