【发布时间】:2011-01-02 00:54:12
【问题描述】:
我正在开发一个应用程序,该应用程序需要在保存页面的整个 HTML 后(通过链接将每个文件与 HTML 文件一起存储)后(完全)缓存网页及其 CSS 文件和图像。
在离线查看 HTML 文件时,UIWebView 需要很长时间才能加载页面,因为我已经离线,并且文件连同其 CSS 和图像都在磁盘上。
我正在使用此代码来加载文件:
NSData *htmlData = [NSData dataWithContentsOfFile:htmlFilePath];
[wView loadData:htmlData MIMEType:@"text/html" textEncodingName:@"UTF-8" baseURL:[NSURL fileURLWithPath:self.htmlFolderPath isDirectory:YES]];
有没有其他方法可以将文件加载到UIWebView 可以更快地加载它?
P.S:它在模拟器上加载非常快(离线),但在设备上需要很长时间(考虑到它已经离线缓存文件)
感谢您的帮助。
【问题讨论】:
-
这些是大网页吗?您正在加载什么类型的设备?请记住,WebKit 的很多性能都受 CPU 和内存限制,而不仅仅是连接;与加载“实时”相比,速度差异如何?
-
是的,它们有点大,但它们处于离线状态(磁盘上的本地),没有涉及互联网连接,我正在 iPhone 3G 上加载它们
-
正如 Ben 所说,呈现网页涉及非零处理时间。 iPhone 3G 的处理器比台式机 Mac 慢得多。您是否尝试过将这些页面存储在本地 Web 服务器上并通过 Mobile Safari 通过 WiFi 加载它们?
-
不,从未尝试过,但我会尝试一下,谢谢布拉德。
-
Fwiw,有一个 WWDC 演讲(WWDC 2012 Session 601),它提供了一些关于提高 WebKit 加载性能的见解。但是,没有什么能专门解决这个问题。
标签: iphone uiwebview view offline performance