美文网首页
WKWebView网页缓存刷新问题

WKWebView网页缓存刷新问题

作者: timelove | 来源:发表于2020-04-13 13:45 被阅读0次

在开发过程中遇到前端改变图片文字,客户端没有实时刷新出来,抓包发现也没有请求网页相关接口。由于不懂后端的知识,折腾了很久,网上也查找了很多都说需要清除缓存。

这是在网上查找的iOS9以上清除缓存方法

NSArray * types = @[WKWebsiteDataTypeMemoryCache,WKWebsiteDataTypeDiskCache];

 NSSet*websiteDataTypes = [NSSetsetWithArray:types];

    NSDate *dateFrom = [NSDate dateWithTimeIntervalSince1970:0];

    [[WKWebsiteDataStore defaultDataStore] removeDataOfTypes:websiteDataTypes modifiedSince:dateFrom completionHandler:^{

    }];

不建议使用上述方法,会浪费用户流量,除非用户手动清除缓存。其实主要原因是后端网页设置的问题,通过head请求获取接口返回信息如下:

{ Status Code: 200, Headers { "Cache-Control" = ( public ); "Content-Length" = ( 5759 ); "Content-Type" = ( "text/html; charset=utf-8" ); Date = ( "Fri, 10 Apr 2020 09:59:03 GMT" ); Expires = ( "Fri, 10 Apr 2020 10:29:02 GMT" ); Server = ( "Microsoft-IIS/7.5" ); "X-AspNet-Version" = ( "4.0.30319" ); "X-Powered-By" = ( "ASP.NET" );} }

上面标粗的是关键,通过测试发现WKWebView是否通过缓存取数据还是重新请求接口取决于Expires,如上就是缓存时效性是30分钟,想要实时刷新,可以让后端不返回这个字段或者这个过期事件设置短一些,例如1分钟。建议静态网页可以设置长时间,需要实时刷新的建议后端不要设置这个字段,以免客户端无法实时显示。

相关文章

  • WKWebView网页缓存刷新问题

    在开发过程中遇到前端改变图片文字,客户端没有实时刷新出来,抓包发现也没有请求网页相关接口。由于不懂后端的知识,折腾...

  • WKWebView网页缓存和刷新

    荒废了好几个月了,已经变成屎人一个 概述 需求产生于一个帮助文档,被告知服务器提交更新了,但是iOS这边显示的还是...

  • WKWebView缓存和缓存刷新

    实现:1、WKWebView加载过内容需要做本地存储。2、WKWebView加载的url本地有缓存时,在无网状态下...

  • WKWebView加载Document下的网页

    WKWebView加载网页时为了追求更好的用户体验,会设计一个缓存机制来应对加载缓慢的问题。缓存的方案一般有2种:...

  • WKWebView默认缓存的使用

    WKWebView加载网页时为了追求更好的用户体验,会设计一个缓存机制来应对加载缓慢的问题。缓存的方案一般有2种:...

  • WKWebView默认缓存的使用

    WKWebView加载网页时为了追求更好的用户体验,会设计一个缓存机制来应对加载缓慢的问题。缓存的方案一般有2种:...

  • IOS WKWebview 使用集锦

    IOS WKWebview 和JS交互 1、删除WKWebview的缓存 WKWebView有默认的缓存功能,即便...

  • 今天开始学习html了

    DTD文档约束 中间的标签:搜索引擎优化 自动刷新网页 禁止网页缓存 ...

  • 版本校验方案

    版本校验方案 主要场景: 主要应对微信内网页缓存严重问题(加时间戳的,需要手动刷新一次。未加时间戳的,大概需要刷新...

  • 2022-03-30

    iOS问题记录 WKWebView加载不受信任网页链接 实现WKWebView代理方法,调过证书校验 - (voi...

网友评论

      本文标题:WKWebView网页缓存刷新问题

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