iOS7 webkit经常崩溃 - 没有释放内存?

Dan*_*man 5 javascript mobile-safari cordova ios7

我注意到我的Phonegap应用程序在iOS7上遇到了一些内存问题,这些问题在iOS6上没有发生.

  1. 很长的iScroll列表包含许多图像
  2. 在查看多个图像后,显示手机相册(9mp)中的图像会崩溃

对于#1,无论设备如何,这在iOS6上都不是问题.

对于#2,我重新使用相同的DIV元素来显示下一张图片,因此似乎没有清除上一张图像.

这篇文章中提到的技术似乎不再适用于iOS7: 在Javascript中加载图像时,iPad/iPhone浏览器崩溃

Mar*_*ark 3

我发现这个问题的最佳解决方案是以下代码:

var img = document.getElementById('imageID');
img.parentNode.removeChild(img);
img.src = 'data:image/gif;base64,' + 
      'R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=';
setTimeout(function() {
img = null;
}, 60000);
Run Code Online (Sandbox Code Playgroud)

这会将 src 属性设置为一个小 gif,然后等待足够长的时间以便垃圾收集最终发生。

请参阅:http ://www.fngtps.com/2010/mobile-safari-image-resource-limit-workaround/

这应该对你有用。我可以使用 Xcode 工具验证内存是否已释放。不幸的是,这个解决方案似乎不适用于我正在使用的主屏幕应用程序。