【问题标题】:UIWebView loading and general performanceUIWebView 加载和一般性能
【发布时间】:2013-05-06 09:03:24
【问题描述】:

我正在使用UIWebView 在我的应用程序中显示文本内容(我将内容存储在与应用程序一起打包的本地 HTML 文件中)。总之,我有三个 Web 视图,我根据用户反馈动态更改其内容。

虽然有些人可能会争辩说这不是最被接受的方式,但我发现UIWebView 非常方便地显示格式化文本,并在必要时使用HTML 修改该文本。虽然这在 99% 的情况下都有效,但有时我会遇到通常属于以下类别之一的问题:

  1. 有时,Web 视图内容加载缓慢并且迟到一秒左右。
  2. 内容已加载但未显示。但是,只要我触摸内容弹出的视图(尝试滚动或其他什么)。
  3. 有几次我收到内存警告(通常在应用程序初始加载后不久),这绝不会影响我的应用程序的性能。它记录了内存警告,但应用程序像什么也没发生一样运行。

这是我用来将内容加载到我的网络视图的方法:

- (void)loadSimpleDocument:(NSString*)documentName inView:(UIWebView*)webView
{
NSString *path = [[NSBundle mainBundle] pathForResource:documentName ofType:@"html"];
NSURL *url = [NSURL fileURLWithPath:path];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webView loadRequest:request];
}

除此之外,还实现了shouldStartLoadWithRequest委托方法,总是返回一个YES

我的问题是:有没有办法提高我的网络视图(尤其是加载)的可靠性/性能?有没有我忽略、做错或不知道的事情?

一些附加信息: 我在 iOS6 SDK,使用 ARC,并以编程方式完成所有操作(不要使用 IB 或故事板)。

【问题讨论】:

    标签: iphone html ios uiwebview loading


    【解决方案1】:

    您有 2 个选项来检查发生了什么:

    • 实现 webViewDidStartLoadwebViewDidFinishLoad 委托方法来检查内容未显示的原因(可能是内容尚未加载)。

    • 将 html 内容读取到 NSString,然后使用 loadHTMLString:baseURL 而不是 loadRequest 并检查它是否加载更快。

    希望这会有所帮助。

    【讨论】:

    • 谢谢,我会调查这些!
    猜你喜欢
    • 1970-01-01
    • 2012-04-05
    • 2013-12-03
    • 2011-11-24
    • 2015-07-18
    • 1970-01-01
    • 2014-09-27
    • 2023-03-21
    • 1970-01-01
    相关资源
    最近更新 更多