

SwiftでWebviewを使ってのブラウズと、iPhoneのSafariに比べて表示が遅いように見えます。  
見え方として、iPhoneのSafariは読み込みながら表示しているのに対して、Webviewでは読み込みが終わるまで表示しないように見えます。

Safariと同じように読み込みながら表示することはできないでしょうか？

また、実際にiPhoneのSafariに比べてWebviewは表示が遅いなどあるのでしょうか？

ご存知の方、ご教授お願いします。


CC BY-SA 3.0
2016-01-16T05:41:51.223
20966
2016-01-16T06:25:46.140
8593
question
swift webview
SwiftのWebviewを使うと表示が遅い件の解決策


iPhoneアプリでWebサイトを表示する方法は大きく分けて3つ存在します。

  * UIWebView
  * WKWebView
  * SFSafariViewController

それぞれ特徴があります。

【UIWebView】

  * 最も古くからあるWebView
  * storyboardから追加可能

【WKWebView】

  * iOS8から追加されたWebView
  * Safariと同じレンダリングエンジンを利用できるためUIWebViewに比べてJavaScriptの処理速度が約4倍速い
  * storyboardからは追加できないため、コード実装が必要
  * 他2つの方法に比べて、最も自由度が高い

【SFSafariViewController】

  * iOS9から追加されたWebサイト表示用のViewController
  * 単にWebサイトを表示するためだけに使うのであれば、最適な方法(リクエストのハンドリングが必要な場合は不向き)
  * Safariをアプリ内で利用することができるといったイメージ

単純な性能で言えば、WKWebViewとSFSafariViewControllerはSafariと同等ですが、UIWebViewは低性能です。

サーバサイドレンダリングやSingle Application
Pageなどレンダリングの手法はWebサイトそれぞれで異なるため、ユーザーが読込みを早く感じられるような工夫をしていることも考えられます。

いずれにしても、iOSでWebサイトを高速に表示する場合は、用途に合わせて、WKWebViewかSFSafariViewControllerを使うのが良いと思います。

詳しい性能結果については、個人的に調査したことがあるため、[iOS9でWebViewの性能を測ろう！](http://grandbig.github.io/blog/2015/09/21/ios9-webview/)をご参照ください。

以上、少しでも参考になれば幸いです。


CC BY-SA 3.0
2016-01-16T06:25:46.140
20968
2016-01-16T06:25:46.140
8968
20966
answer