UIWebview 在 iPhone 设备上很慢,在模拟器上很快
Posted
技术标签:
【中文标题】UIWebview 在 iPhone 设备上很慢,在模拟器上很快【英文标题】:UIWebview is slow on the iPhone device, fast on simulator 【发布时间】:2009-06-22 04:24:16 【问题描述】:我正在使用 UIWebView 从外部服务器加载网页。页面加载非常缓慢。使用 Edge,大约需要 30 秒。使用 WiFi,大约需要 5-6 秒。直接通过 Safari 加载相同的页面要快得多。
在模拟器中,UIWebView 响应速度非常快。
有没有人有提高 UIWebView 性能的经验?我的一个想法是使用静态 html 页面和图像,并使用 JSON 加载/填充数据单元。
【问题讨论】:
【参考方案1】:与其他任何东西相比,UIWebView 的加载速度很慢,即使使用简单的静态 HTML 也是如此。 UILabel 总是快得多。
我认为这是因为您可能不需要的 HTML 引擎的某些方面(如 javascript 解释器)需要一些时间来加载。但是,即使您保留了一个已经创建的 UIWebView 实例,加载新内容仍然很慢。
一种可能性是将 UIWebView 保留在后台,并从中获取图像以显示 - 这样您就可以避免显示滞后。但是,这会破坏剪切和粘贴,并且可能无法正常工作,具体取决于不在显示中的 UIWebView 感觉如何呈现。
带有 JSON 加载的静态 HTML 可能与您将获得的一样快。在 3G 上,它甚至可能不会有太多明显的延迟。
【讨论】:
【参考方案2】:几点。
-
模拟器纯粹是 API 模拟器,它不是模拟器。这意味着它正在使用 Mac 的全部功能,并确保 API 的行为方式相同。 Mac 上的性能与移动设备无关。
UIWebView 组件基于 WebKit,但它是 Safari 中包含的组件的更旧、更差的版本。 UIWebView 的性能总是比 Safari 差。
【讨论】:
【参考方案3】:那是因为模拟器正在使用您的宽带连接。
【讨论】:
模拟器在我的笔记本电脑上运行,它与我的手机使用相同的 WiFi 连接。 您的模拟器还拥有更快的 CPU 和大量 RAM 模拟器使用您的笔记本电脑资源进行加载,但 ipad 设备使用自己的资源,如 RAM 和网络连接。以上是关于UIWebview 在 iPhone 设备上很慢,在模拟器上很快的主要内容,如果未能解决你的问题,请参考以下文章