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 慢吗?的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 safari 的网络检查器在 WKWebView 中调试用户 javascript