我试图加载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的运行它,并加载它第一次总是需要几秒钟。 有谁知道为什么发生这种情况,如何解决这一问题?
这通常是因为的CSS
渲染网页使用。 加载页面时在本地是默认行为。 我们也可以考虑在第一负载, UIWebview
没有高速缓存这一点,该页面创建缓存。
为了使它有点快从一个文件,例如尝试加载页面
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"filePath" ofType:@"html" inDirectory:@"."]];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webView loadRequest:request];
CSS
像body { 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;}
也增加加载页面的时间。
我最近在努力与UIWebView的性能。 这似乎需要很长的时间来处理(在iPad上航2模拟器1或2秒)的本地HTML我提供即使是小得可笑。
很多周围的Googling后,我发现,罪魁祸首是对的WebView的电话号码检测 。 一旦我未选中它的故事板,延迟不见了。
希望它可以帮助别人面临着同样的问题:)
对于其他谁遇到过这种问题,有时我们通过复制粘贴-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字符串,删除它,如果它不被使用。