i create a html string with 500 p tag with timestamp in it
i use UIWebView and WKWebView loadHTMLString:baseURL: to load it,and wkWebView is slower about 50% than UIWebVIew. why?
UIWebView:0.1681529879570007
WKWebView:0.3913570046424866
WKWebView is faster for displaying html from Strings. However, there is a bug that makes UIWebView faster by default, which is the phone number detection.
Running a viewController with the following code, webView being respectively a UIWebView and WKWebView instance and keeping everything else identical I found WKWebView to take up to 2 seconds to load, while UIWebView loads almost instantly.
webView.loadHTMLString(HtmlStringInstance, baseURL: nil)
I'm by far not the only one to find this:
- when I use wkwebview to load local html,I find it renders slower than uiwebview
- UIWebView delay in loading local content
- Slow loading UIWebView from string
- Delay in loading a HTML string into a UIWebView
- Why UIWebView work so slowly when loadHTMLString with UIWebView?
However, the solution is easy: Disable phone number detection for WKWebView and poof. There you go.
WKWebView rendering performance is noticeable in WebGL games and something that runs complex JavaScript algorithms which UIWebView lacks.
You check the performance both in the Github.
来源:https://stackoverflow.com/questions/40499466/uiwebview-vs-wkwebview-to-load-local-html