js缓存问题怎么解决

JavaScript023

js缓存问题怎么解决,第1张

面对的缓存问题有两个:一是页面引入的JS文件缓存。二是JS请求后台的缓存。对于第一种情况,有两种处理方式:

1、可以在页面引入的JS文件后面增加日趋,如果不经常改动的文件,可以在每次改动后修改后缀。

2、对于第二种情况,一般的处理方式是在请求的路径后面加上毫秒值,这样每次请求的路径都不一样,但是对于后台来说都是一样的,用来欺骗浏览器,进行实时请求,不调用浏览器缓存。

通过NSURLProtocol注册NSURLProtocol的派生类UrlRedirectionProtocol

并在派生类实现url拦截并重定向本地url

重写startLoading方法实现本地资源重载

js通过window.webkit.messageHandlers.方法名.postMessage(消息体)调用oc并传参

//oc调js通过wkwebview的api调用js

//oc调js传对象,可以讲字典和数组转换成json并替换"""成"'"传给js,js可以接受不了到的就直接是js对象了

我们可以把js调用oc和oc调用js的函数写成一个或多个category以实现不同模块的js<->native调用

比如我的wkwebview放到了一个WebVC的控制器里,然后把交互事件放到不同的category里,然后根据实际需要使用

截图不知道为什么传上去后变这么大,知道的可以告诉我一下

demo地址

https://github.com/joy-make/WKWebView.git