首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iPhone UIWebView加载到本地HTML文件的速度很慢

iPhone UIWebView加载到本地HTML文件的速度很慢
EN

Stack Overflow用户
提问于 2010-01-06 20:13:50
回答 7查看 20.9K关注 0票数 29

我正在开发一个应用程序,需要缓存网页(完全)与他们的CSS文件和图像后,保存整个网页的HTML (通过链接来存储每个文件与HTML文件)。

在离线查看HTML文件时,UIWebView需要很长时间才能加载页面,因为我已经离线了,文件以及它的CSS和图像都在磁盘上。

我使用下面的代码来加载文件:

代码语言:javascript
复制
  NSData *htmlData = [NSData dataWithContentsOfFile:htmlFilePath];
  [wView loadData:htmlData MIMEType:@"text/html" textEncodingName:@"UTF-8" baseURL:[NSURL fileURLWithPath:self.htmlFolderPath isDirectory:YES]];

是否有其他方法可以将文件加载到UIWebView,从而可以更快地加载它?

附言:它在模拟器上加载非常快(离线),但在设备上需要很长时间(考虑到它已经是离线缓存文件)

谢谢你的帮助。

EN

回答 7

Stack Overflow用户

发布于 2010-08-04 05:30:12

您的解决方案是否真的缓存了html文件以外的内容,即图片、css等,并在html页面中重新链接它们?我猜您正在下载并缓存html页面和外部资源,然后UIWebView正在加载该html,并且仍然要加载外部资源。这将解释模拟器上的快速性能和设备上的较慢性能。

这里有一个专门设计用来做你想要做的事情的库:ASIWebPageRequest

还应该注意的是,这可能仅仅是磁盘i/o瓶颈的情况。我知道在我的项目中,我在uitableview中加载大图像,即使在它们被缓存之后,我也注意到在从磁盘上拉出它们时有相当多的延迟,因为它们太大了。

票数 7
EN

Stack Overflow用户

发布于 2011-01-15 22:59:59

我发现某些类型的CSS可以使WebView呈现陷入停顿。例如:

代码语言:javascript
复制
body { -webkit-box-shadow:inset 0 0 100px #222; }

这在模拟器中工作得很好,看起来也很不错。但在手机上(即使是iPhone 4、iOS 4.2),一个简单的页面需要10秒才能呈现。

票数 4
EN

Stack Overflow用户

发布于 2010-08-03 19:47:13

由于这可能只需要时间,因为它需要解析和呈现页面,您可以考虑在后台启动UIWebView;即作为子视图添加,但不可见。

也许UIWebView足够聪明,知道它不需要做任何事情,但我怀疑至少html和css解析是立刻完成的。

如果它在不可见的情况下什么也不做,那么将大小减小到1x1并设置opacity=0,并将该像素放在不会干扰触摸事件处理的位置。

不是完美的,但它可能会起作用。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2012793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档