美文网首页
iOS开发:解决UIWebView自动缓存JS文件导致页面不可刷

iOS开发:解决UIWebView自动缓存JS文件导致页面不可刷

作者: CoderLocus | 来源:发表于2017-11-13 13:12 被阅读396次

    有时候,针对一些页面我们需要修改WAP页面的JS文件,但修改完成之后并没有更新,还是原先的页面。UIWebView会神奇的自动缓存之前的JS文件,这就导致了更改过webview的某些功能之后,我们APP端再打开这个webView页面,发现页面的这些功能根本没有任何的变化。
    首先我们想到的是忽略request的缓存。

    wap.request = [NSURLRequest requestWithURL:[NSURL URLWithString:urlString] cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:15];
    

    使用NSURLRequestReloadIgnoringLocalCacheData缓存策略,但并不管用。还是需要卸载重装,这这种方式很浪费时间。或者更换一个URL就可以避免这个缓存问题,说到这更换一个URL就可以,那我们是不是删除掉针对这个URL的缓存就可以了呢?找找看 发现NSURLCache里有这么一个方法哎!

    - (void)removeAllCachedResponses;
    

    试验一下,发现这个方法可以啊。不错,但这个方法貌似把所有的缓存都删除了啊,那我如果有一些页面想保留怎么办啊,其实NSURLCache离还有其他的方法:

    - (void)removeCachedResponseForRequest:(NSURLRequest *)request;
    

    在你认为可能会修改JS文件的页面时,在-dealloc方法里使用即可。

    - (void)dealloc {
        [[NSURLCache sharedURLCache] removeCachedResponseForRequest:self.request];
    }

    相关文章

      网友评论

          本文标题:iOS开发:解决UIWebView自动缓存JS文件导致页面不可刷

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