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 设备上很慢,在模拟器上很快的主要内容,如果未能解决你的问题,请参考以下文章

为啥'=='在std :: string上很慢?

保存或加载图像时 iPhone 设备的响应时间很慢

iPhone 5 uiwebview 问题

MySQL简单插入查询在“查询结束”步骤上很慢

MySQL查询在大表上很慢

为啥 kafka 生产者在第一条消息上很慢?