如何使用缓存使用 SfSafariView 或 WKWebView 更快地加载网站?

Posted

技术标签:

【中文标题】如何使用缓存使用 SfSafariView 或 WKWebView 更快地加载网站?【英文标题】:How to load a website faster with SfSafariView or WKWebView using cache? 【发布时间】:2018-07-26 02:23:38 【问题描述】:

我曾使用 SFSafariView 加载“HTTPS”网站,但每次单击按钮时加载时间较长。我记得几年前在选项卡式应用程序上使用 UiWebView 时,它会在您进入 Web 视图控制器时第一次加载网站,但在第一次加载后,该 Web 视图上的负载将是即时的。有没有办法在打开该视图之前加载网站,或者在第一次加载它但之后加载速度更快(使用缓存)?

我曾尝试在线查找教程和信息,并尝试使用 WKWebView 并使用 SFSafariView,但找不到任何我想要的特定功能。任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

尝试使用缓存策略。

let urlRequest = URLRequest(url: URL(string: "www.example.com")!, cachePolicy: .reloadRevalidatingCacheData, timeoutInterval: 15.0)
let wkWebView = WKWebView(frame: .zero)
wkWebView.load(urlRequest)

【讨论】:

您好,我试过了,但似乎没有太大区别,当我加载 webViewController 时,它每次都会加载网站,至少需要 5-8 秒。有没有办法我可以从第一个视图控制器预加载 webview(位于第二个 viewController 上),或者有一种方法可以不关闭第二个视图控制器(包含 webview)。因此,当我导航到第二个视图控制器时,它会使用 url 加载 webview,然后我可以返回到第一个控制器而无需完全关闭第二个视图控制器,因此当我返回时它不必重新加载 url。

以上是关于如何使用缓存使用 SfSafariView 或 WKWebView 更快地加载网站?的主要内容,如果未能解决你的问题,请参考以下文章

更换缓存时如何输出缓存集中的数据?

如何知道请求是不是来自缓存或不使用 AFNetworking

AFNetworking:如何知道响应是不是使用缓存? 304 或 200

利用浏览器缓存,如何使用 apache 或 .htaccess?

如何使用 javascript 或 php 禁用 Internet Explorer 缓存

如何将执行命令从 bash 脚本转换为 C?或如何在“W”模式下正确使用 popen()?