2010-08-09 175 views
2

每当我加载大于2MB的html文件,我的应用程序崩溃。网页的大小有多大?我怎么能不会崩溃我的应用程序(部分加载?)UIWebview大小限制

回答

9

当加载HTML的2MB的UIWebView中具有消耗大量的内存来创建一个DOM和所有的控件/图形/等等。实际显示该页面。限制不是HTML大小,而是显示它所需的内存量。在活动监视器模拟器中运行它,看看内存消耗

Xcode Instruments: peak RAM of iPhone apps running in Simulator?

你需要打破你的网页或者找到另一种方式做标记,使内存更小。请注意,如果您需要创建相同的页面,那么制作较小的HTML可能无济于事。

+0

从内置的Safari应用程序加载页面似乎没问题。他们的伎俩是什么? – Yazzmi 2010-08-09 12:17:45

+0

然后,您必须确保不会以其他方式泄漏内存。你真的有一个只有一个UIWebView指向HTML的应用程序,它崩溃了吗?或者还有其他可能导致它的事情发生。 – 2010-08-09 12:35:37

3

我敢打赌,你忽略了发送到你的UIWebView的UIViewController子类的内存警告。

取消注释-(void)didReceiveMemoryWarning并从那里发出一些NSLog消息。你可能会看到手机疯狂地试图引起你对低内存条件的关注。而当你没有通过降低内存使用来回应时,它会杀死你。

你想在这种方法做的是免费的你持有到任何资源 - 图像,数据的大口吃等

+0

如何在UIWebView中释放资源? – Yazzmi 2010-08-13 07:33:46

+0

这是一个很好的问题。这是你的所有应用程序是由?有没有其他的数据结构,你正在浏览或保留的图像?如果没有,我想你让UIWebView管理自己。它也会响应低内存事件。如果有人知道更好,我也有兴趣知道答案。 – 2010-08-13 12:00:52