【问题标题】:UIWebview size limitUIWebview 大小限制
【发布时间】:2011-03-27 06:23:41
【问题描述】:

每次我加载大于 2MB 的 html 文件时,我的应用程序都会崩溃。网页的大小是否有限制?我怎样才能不让我的应用崩溃(部分加载?)

【问题讨论】:

    标签: iphone uikit uiwebview


    【解决方案1】:

    当您加载 2MB 的 HTML 时,UIWebView 必须消耗大量内存来创建 DOM 和所有控件/图形/等。实际显示页面。限制不是 HTML 大小,而是显示它所需的最终内存量。使用 Activity Monitor 在模拟器中运行它以查看内存消耗

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

    您需要分解您的页面或找到另一种方法来进行标记以使内存更小。请注意,如果您需要创建相同的页面,仅缩小 HTML 可能无济于事。

    【讨论】:

    • 从内置 Safari 应用程序加载页面似乎没问题。他们的伎俩是什么?
    • 那么你必须确保没有以其他方式泄漏内存。你真的有一个应用程序只有一个指向 HTML 的 UIWebView 并且它崩溃了吗?还是有其他可能导致它发生的事情。
    【解决方案2】:

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

    取消注释 -(void)didReceiveMemoryWarning 并从那里发出一些 NSLog 消息。您可能会看到手机正疯狂地试图引起您对内存不足的注意。如果你不通过降低内存使用来做出回应,它会杀死你。

    你想要在那个方法中做的是释放你持有的任何资源——图像、大块数据等。

    【讨论】:

    • 如何在 UIWebView 中释放资源?
    • 这是个好问题。这就是您的应用程序的全部组成部分吗?没有您正在导航的其他数据结构或您保留的图像?如果没有,我猜你让 UIWebView 自己管理。它也会响应内存不足的事件。如果有人知道得更好,我也有兴趣知道答案。
    猜你喜欢
    • 1970-01-01
    • 2011-11-21
    • 2010-12-29
    • 2012-10-16
    • 2011-03-09
    • 2014-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多