【发布时间】:2012-05-17 13:25:14
【问题描述】:
我正在开发一个 ipad 应用程序,该应用程序旨在一次显示多个 UIWebView 控件,我想知道在 ipad 上遇到内存问题之前我们可以拥有的数量有什么合理限制?
谢谢
【问题讨论】:
-
您尝试过什么样的网站来达到这 20 个?我最多只能做 9 个。非常感谢!
标签: iphone objective-c ipad memory uiwebview
我正在开发一个 ipad 应用程序,该应用程序旨在一次显示多个 UIWebView 控件,我想知道在 ipad 上遇到内存问题之前我们可以拥有的数量有什么合理限制?
谢谢
【问题讨论】:
标签: iphone objective-c ipad memory uiwebview
你必须对此充满活力。不要在您的应用程序中设置硬限制,等待内存警告然后开始清除 Web 视图,在用户需要时懒惰地重新加载它们。您应该先使用[CALayer renderInContext:] 截取视图,使其看起来无缝。
毕竟每个 Web 视图都会有不同的内存和 CPU 要求。一如既往,口头禅是测试、测试、测试。
...但是,当然,Safari 将您限制为九个打开的选项卡。这是一个非常硬的限制。所以……就是这样。
【讨论】:
它对您的应用程序的 webview 没有合理的限制,这取决于内存留下的 ios
但要小心使用,webview 很难控制内存,
这是一个技巧,在发布 webview 之前这样做可能会减少内存使用
[web loadRequest: nil];
同时使用大量 webview 可能不是一个好主意
【讨论】:
FWIW,我设法在 iPad 1 上一次在屏幕上显示了 20 个 UIWebview。这些页面都包含 javascript 代码,它们也不是简单的框架。加载它们需要一段时间,但我没有收到内存警告,一旦加载,一切都顺利滚动。使用此处的代码:
Determining the available amount of RAM on an iOS device
然后我检查了内存使用情况,结果是:
使用了 113M,免费 17M,总共 131M,听起来不错。
我没有推动超过 20 个,这比我在实践中使用的要多得多。我印象深刻。
【讨论】: