UIWebView第一次请求太慢

Nit*_*ish 13 iphone uiwebview ios uiwebviewdelegate

UIWebView用来在我的应用程序中呈现Web内容.我观察到应用程序启动时的初始请求,即loadRequest需要很长时间才能呈现内容.然而,我不跟踪的后续请求要快得多.
为了证实这一点,我创建了一个独立的应用程序,它只有一个UIWebView.这是我添加的单行代码:

[wkBrowser loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"https://www.yahoo.com"]]];
Run Code Online (Sandbox Code Playgroud)

结果是一样的.加载页面大约需要15-20秒.但是,在点击网页上的任何链接时,加载下一页需要3-5秒.我确实把UIWebView委托函数didFailLoadWithError,但从来没有错误.
问题:

  1. 为什么第一个Web请求这么慢?
  2. 除了缓存之外,我怎么能让它更快?

Bal*_*ari 5

主要原因是,当您首次调用URL请求时,接收端的服务器会尝试根据请求的设备浏览器(例如移动设备,台式机)显示信息。在这里,您会看到一些延迟。

  • 服务器需要一些时间来解析请求源浏览类型并根据浏览器类型进行响应。此值是从浏览器内部发送的。移动Safari和桌面Safari有区别。
  • 服务器在收到请求后会以兼容设备类型的页面回覆您(大多数域服务器在内部都在执行此页面,即响应页面)。
  • 如果您想要“无延迟的情况”,请尝试调用相关门户的确切移动版本。
  • 已知类型的浏览器处理后续请求,从而减少响应延迟。

希望这能解决疑问。

  • 我不同意。我从应用程序的捆绑包中显示了一个静态页面:`let bundlePath = Bundle.main.bundlePath.stringByAppendingPathComponent(“ description.html”)`let url = URL(fileURLWithPath:bundlePath)`let request = URLRequest(url: requestURL)`webView.loadRequest(request)`那么网络和服务器延迟在哪里? (3认同)