美文网首页
WKWebView缓存+请求拦截(对比VasSonic)

WKWebView缓存+请求拦截(对比VasSonic)

作者: 上官soyo | 来源:发表于2021-01-22 18:59 被阅读0次

上一篇文章介绍了WKWebView如何网络请求拦截WKWebView完美网络请求拦截
,最近终于有时间做缓存了。
源码见SSWKURL

缓存

实现比较简单,就是内存和磁盘IO的二级缓存。
策略可以自由控制。比如通常不缓存POST请求,不缓存Ajax,不缓存视频

    BOOL shouldCache = YES;
    if (request.HTTPMethod && ![request.HTTPMethod.uppercaseString isEqualToString:@"GET"]) {
        shouldCache = NO;
    }
    NSString *hasAjax = [request valueForHTTPHeaderField:@"X-Requested-With"];
    if (hasAjax != nil) {
        shouldCache = NO;
    }

缓存性能

用bilibili单页面测试,缓存前完成加载约4~5秒。缓存后约0.8-1秒。
跟WebView自身的HTTP缓存策略性能类似。性能区别不大
可以大幅度提升首屏加载的性能。(因为Webview首次加载肯定没有缓存)
仍然有进一步优化的空间。

image.png

对比vassonic

优势:

  • 使用WKWebview(最主要区别)
  • 更轻量级

劣势:

  • 不支持动静分离(需要重构web页面,意义有限)
  • 不支持iOS13以下

相关文章

网友评论

      本文标题:WKWebView缓存+请求拦截(对比VasSonic)

      本文链接:https://www.haomeiwen.com/subject/tnrezktx.html