首页 > 开发 > iOS > 正文

WebView中的图片和JS,CSS这些资源文件如何缓存

2017-09-08 14:04:10  来源:网友分享

在使用iOS的webview的时候发现这样一个问题,加载一个网页进来,webview会负责缓存页面里的css,js和图片这些资源。但是这个缓存不受开发者控制,缓存时间非常短。
我希望能像缓存其他数据一样缓存webview里的资源,可以实现吗?

解决方案

这个和Web的处理没区别,都是要用到HTML5的appcache。

<html manifest="appcache.manifest">...</html>

这个manifest文件的后缀是什么不重要,但MimeType得是text/cache-manifest,文件内容则类似下面列举需要缓存的资源文件:

CACHE MANIFESTstyle.cssscript.js

text/cache-manifest类型的缓存头信息得设置对了(建议不允许缓存),免得其他缓存文件的列表没法及时更新。

EDIT:按照约定,如果manifest文件内容变化了,浏览器就应该重新检查资源文件的更新情况。我建议如果资源文件的内容变化了,就应该用新的文件名,如在资源文件的uri里带上日期或者版本号,如common_120901.min.js,或1.0.1/common.min.js。这样可以少一些麻烦。