UIWebView 以更有效的方式降低加载时间
Posted
技术标签:
【中文标题】UIWebView 以更有效的方式降低加载时间【英文标题】:UIWebView lower loading time with a more efficient way 【发布时间】:2013-03-08 05:33:00 【问题描述】:我正在下载多个 html,并将它们在本地保存为 NSArray
中的字符串。
然后我使用 3 UIWebViews
来加载内容。用户总是会看到一个UIWebView
和另外两个UIWebViews
在后台使用:
[_firstWebView loadHTMLString:nextHtml.body baseURL:nil];
当用户在UIWebViews
之间移动时,如果他一次移动 2 个UIWebViews
,我仍然可以看到 1-2 秒的缓慢加载时间。我考虑过 5 甚至 7 UIWebViews
但我担心它会严重影响内存使用。
我的另一个想法是将内容在本地保存为NSData
,然后用它加载
[web loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:filePath]]];
但我不确定这是否会给我带来任何改进,或者会不会?
另一个想法是我的应用程序中的某些东西(屏幕上的动画)正在减慢加载时间,所以也许我应该在不同的线程上loadHTMLString:nextHtml
?
谢谢
【问题讨论】:
你总是乐于尝试,而且你不必在这里请求许可。祝你好运! 【参考方案1】:最近我做了一些关于在后台将内容加载到 UIWebView 的研究。我发现即使是成功的 loadRequest 也没有效果,而 webview 是不可见的并且没有在某处添加为子视图。
但如果我在加载前访问视图,它会开始显示在后台加载的内容。
所以我先隐藏视图,然后在其中加载内容,然后再将其显示给用户,让视图再次可见:
在加载方式中:
// make some access to view to reflect content changes
self.webView.hidden = YES;
[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:someurl]]];
当用户切换到 webview 时:
// make view visible again
self.webView.hidden = NO;
这种方法对我有用。希望它也为您指明正确的方向。
【讨论】:
以上是关于UIWebView 以更有效的方式降低加载时间的主要内容,如果未能解决你的问题,请参考以下文章