WKWebView 的网络性能比原生 safari 慢吗?

Posted

技术标签:

【中文标题】WKWebView 的网络性能比原生 safari 慢吗?【英文标题】:Is the network performance of WKWebView slower than native safari? 【发布时间】:2016-09-26 16:11:58 【问题描述】:

前言

ios9 上使用 Objective-C 开发的应用程序。

使用 WKWebView 实现应用程序,并让它加载一个 Angular SPA。

我们注意到应用程序中的网络速度有些慢。我们正在运行应用程序,并且 Safari 打开运行相同的加载 URL。

我们发现应用程序的性能比在 Safari 中运行慢 2-3 倍。

问题:

这是关于使用 webview 与原生 safari 甚至原生应用程序的已知信息吗?是否有任何已知的优化可以提高 web 视图中的网络性能?

我们使用 WKWebView 来加快开发速度,因为我们都是 Web 开发人员,但我们认为我们可能想要切换到原生应用程序。

【问题讨论】:

检查SFSafariViewController。如果我理解正确,WKWebView 没有用于执行 JS 的 JIT。 @Avi 根据文档,SFSafariViewController 有一个后退按钮,显示 url 等。我们的应用程序不能有。它需要看起来像一个 iOS 应用程序,但在幕后它是一个网络应用程序……我知道像 uber、evernote、twitter、instagram 这样的公司都使用网络应用程序。它们的性能都比我们的高得多! 【参考方案1】:

从 iOS 8 开始,WKWebView 的性能与 Safari 相同,您可以阅读here。

由于默认情况下 WKWebView 不使用 JS 的 JIT 渲染,我的加载速度很慢。

经过一番研究,我在这里找到了解决方案:

webView.configuration.suppressesIncrementalRendering = true 

【讨论】:

以上是关于WKWebView 的网络性能比原生 safari 慢吗?的主要内容,如果未能解决你的问题,请参考以下文章

WKWebView WebGL 性能低于 Safari

wkwebview 代理介绍

无法使用 safari 的网络检查器在 WKWebView 中调试用户 javascript

iOS WKWebView JS 与 原生交互小结

无法使用 WKWebView 在 Safari 中打开外部链接

WKWebView比UIWebView优越性