【问题标题】:iOS7 webkit crashes frequently - not freeing up memory?iOS7 webkit 经常崩溃——没有释放内存?
【发布时间】:2013-10-03 04:44:23
【问题描述】:

我注意到我的 Phonegap 应用在 iOS7 上存在一些在 iOS6 上没有的内存问题。

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

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

对于#2,我正在重新使用相同的DIV元素来显示下一张图片,所以看起来之前的图片没有被清除。

这篇文章中提到的技术似乎不再适用于 iOS7: iPad/iPhone browser crashing when loading images in Javascript

【问题讨论】:

  • 我遇到了类似的问题。我在 iOS 6 上运行良好的应用程序现在在 iOS 7.0.3 中也崩溃了,因为图像内存没有正确处理。我正在使用与您的链接中描述的技术类似的技术。你有没有发现任何关于它的新东西?您是否已经提交了错误?

标签: javascript cordova ios7 mobile-safari


【解决方案1】:

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

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

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

见:http://www.fngtps.com/2010/mobile-safari-image-resource-limit-workaround/

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

【讨论】:

  • 7.0.4 遇到了同样的问题。我们正在使用phonegap +骨干+铆钉。我在关闭每个视图时都这样做了,它有点帮助。也将尝试在铆钉的数据绑定中实现这一点,但这是我所知道的最后一个可以提供帮助的地方。
  • 我的问题似乎在 iOS 7.0.4 中得到修复。今天还有一个 7.1 测试版。
  • 你的意思是这不适用于ios 7+?
  • 上次我没有检查。你有这个问题吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-17
  • 2014-07-01
相关资源
最近更新 更多