如何缓存js、css、图片文件等,实现第二次进入不重复加载

#1

现在开发的是混合app,用原生iOS和Android的Webview做框架,嵌入了H5的界面;

每一个新界面出现时,都会加载一遍React打包之后的js文件和css文件,而且图片资源也都是重新加载;

现在想做到打包后的js文件、css文件、图片资源第一次都缓存在本地,发现本地有同名同大小的文件就不再重复加载,各位大神有没有什么可行简单的方案;

Safari是已经有了这个功能,用抓包工具测试过了,全部的js、css文件、图片都做了缓存,每次都是检测文件变化才会重新加载,但不知道是怎么做到的,是不是在前端的项目里加了什么配置文件;

最近也了解过 Application Cache缓存机制,可以缓存文件的,大小5MB, 不知道是不是这个技术实现的;

#2

试试service worker的缓存或者直接把cache的时间调大点

#3

Service Worker感觉要复杂些,计划用简单可行的方式解决这个缓存问题;

现在想用ApplicationCache的方式去做js文件的缓存,据现在的了解,这种方式应该是在不改变业务代码且最有效的;也可能我的理解有误,不知道这种方式是否是比较好的解决方案,希望前辈指正;

(不知道如何调整cache的时间 可以在webview中缓存打包后的js文件?)

#4

我觉得没问题…

#5

或者哪位大神知道 Safari 和 Google 是如何做到缓存全部js css 图片文件的,用原生的WebView能不能做到? 可不可以通过开启什么权限 、调用私有API 、或者通过代码实现? 希望做过的前辈能指点思路

#6

设置webview的缓冲机制为normal就可以了,客户端同学做的

#7

感谢各位同学的回答,这个问题解决了,还是按照我前面说的ApplicationCache的方案,在manifest文件中配置需要缓存的js、css文件,在原生的WebView中选择需求需要的时机清除OfflineApplicationCache即可;

1 Like
#8

学到了,赞一个