从字符串加载速度慢的UIWebView(Slow loading UIWebView from st

2019-10-18 11:52发布

我试图加载UIWebView如下从一个字符串:

    NSString* plainContent = @"...";
    NSString* htmlContentString = [[NSString stringWithFormat:
                                   @"<html>"
                                   "<style type=\"text/css\">"
                                   "body { background-color:transparent; font-family:Arial-BoldMT; font-size:18;}"
                                   "</style>"
                                   "<body>"
                                   "<p>%@</p>"
                                   "</body></html>", plainContent] retain];
    [webView loadHTMLString:htmlContentString baseURL:nil];

其中纯含量与约5链接和400个字符的一些简单的HTML。 我想在我的iPhone5的运行它,并加载它第一次总是需要几秒钟。 有谁知道为什么发生这种情况,如何解决这一问题?

Answer 1:

这通常是因为的CSS渲染网页使用。 加载页面时在本地是默认行为。 我们也可以考虑在第一负载, UIWebview没有高速缓存这一点,该页面创建缓存。

为了使它有点快从一个文件,例如尝试加载页面

NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"filePath" ofType:@"html" inDirectory:@"."]];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webView loadRequest:request];

CSSbody { background-color:transparent; font-family:Arial-BoldMT; font-size:18;} body { background-color:transparent; font-family:Arial-BoldMT; font-size:18;} body { background-color:transparent; font-family:Arial-BoldMT; font-size:18;}也增加加载页面的时间。



Answer 2:

我最近在努力与UIWebView的性能。 这似乎需要很长的时间来处理(在iPad上航2模拟器1或2秒)的本地HTML我提供即使是小得可笑。

很多周围的Googling后,我发现,罪魁祸首是对的WebView的电话号码检测 。 一旦我未选中它的故事板,延迟不见了。

希望它可以帮助别人面临着同样的问题:)



Answer 3:

对于其他谁遇到过这种问题,有时我们通过复制粘贴-ING从现有网站创建的HTML文件,我们忘了检查标题的链接。

就我而言,我忘了删除未使用的link rel在我的html串标头:

NSString* html = [NSString stringWithFormat:@"<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"><title>%@</title><link type=\"text/css\" rel=\"stylesheet\" href=\"http://192.168.3.183/assets/css/question.css?1383042738\" /></head><body><h1 style=\"font-size: 2em; margin-bottom: 0; color: #3357b8; font-weight: bold\">%@</h1><div style=\"color: #555\">%@</div><br><p style=\"line-height: 1.7em\">%@</p><a href=\"%@\"><b>Open in browser</b></a><br></body></html>", title, title, dateString, content, detail];

通过上面的链接相对指向本地URL使加载时间更坏。

<link type=\"text/css\" rel=\"stylesheet\" href=\"http://192.168.3.183/assets/css/question.css?1383042738\" />

只是不要忘了重新检查你的头或其他链接,在HTML字符串,删除它,如果它不被使用。



文章来源: Slow loading UIWebView from string