大神们,我们遇到一些缓存问题,问题如下:
背景:在manifest.json入口指定一个外网地址,实现纯外网的应用,外网更新,APP整体更新
问题:外网更新了,但app还是读缓存。我们需要读最新页面
尝试:url加时间戳、头部加强制不缓存。结果都不行。
请问官方作者们,应该如何解决?
大神们,我们遇到一些缓存问题,问题如下:
背景:在manifest.json入口指定一个外网地址,实现纯外网的应用,外网更新,APP整体更新
问题:外网更新了,但app还是读缓存。我们需要读最新页面
尝试:url加时间戳、头部加强制不缓存。结果都不行。
请问官方作者们,应该如何解决?
16 个回复
H5极致体验 (作者)
顶~
ahwx1994
jquery用这么个东西,可以强制不读缓存
H5极致体验 (作者)
ajax倒没缓存。是html、js等静态资源缓存
2015-12-21 20:34
H5极致体验 (作者)
官方大神们,能否给个回答?
云海帆 - 咨询问题请+Q1395641578
重启APP还是读缓存?
我猜你需要的是这个:
webview.reload( force );
force: ( Boolean ) 必选 是否强制不使用缓存
reload
H5极致体验 (作者)
。。。不是,这个我试过了,体验不好,进去就刷新白屏。
2015-12-23 15:02
H5极致体验 (作者)
官方能回答吗?
H5极致体验 (作者)
顶
~~~maq
既然你是【在manifest.json入口指定一个外网地址】,那么【url加时间戳】这个又是怎么做到的呢?
如果你在 app 里保留一个 index.html 作为入口,在这个里面再设法加载外网地址,一定有办法绕过缓存。不过,如果真是 webview 缓存设置过度的话,后续的点击操作恐怕还是难以避免缓存。
H5极致体验 (作者)
url加时间戳这个是在app保留一个index.html,然后再用webview打开一个外网,那个时候就可以加上时间戳,但还是不行。
2015-12-23 16:22
H5极致体验 (作者)
顶
~~H5极致体验 (作者)
顶
~~H5极致体验 (作者)
顶
~~H5极致体验 (作者)
顶
~~maq
你的意思是,你在外网 url 后面加了时间戳以后再访问到的还是被缓存的内容?
正常情况下,这是不可能的。请检查一下你的外网 url 里面是不是有 #
BTW: 你这么频繁地顶帖,未必能引来更多愿意帮助你的人,而且可能会有反作用。
H5极致体验 (作者)
是的,还是被缓存,时间戳参数是带在#前面的,后端能识别和获取,我们的框架的是用hash跳转的,也就是单页面应用。不是我想频繁顶贴,但我觉得官方至少出来说句吧,能否解决说一声就好啦,免得我们在这浪费时间。
2015-12-23 16:50
maq
心情可以理解。但是官方也不可能做到有求必应。如果你真是着急顶帖的话,也最好每次能多提供一些有帮助的信息。就算官方的技术人员来了,肯定也是首先跟你要代码才能去测试,不可能根据你的描述自己去写代码帮你测试。
2015-12-23 17:01
chender - 与人为善
外部的页面是js和css没更新还是页面的html没更新啊?
H5极致体验 (作者)
静态资源都被缓存了。每次我都需要删除应用重新安装才能读到最新。
2015-12-23 16:52
maq
这么说的话,应该是静态资源被缓存了,而不是 html 本身被缓存的问题。这种情况,应该是给静态资源的 url 加时间戳才管用。
2015-12-23 16:58
maq
嗯……叫【版本戳】也许更准确一点。
2015-12-23 17:02
chender
回复 H5极致体验:那你url的时间戳要加在js和css的引用上
2015-12-23 17:16
H5极致体验 (作者)
顶
~忽忽
遇到同样的问题,求官方大神解答
SAOmi
虽然麻烦点 直接打开设置 清除下软件的缓存就行 不用卸载再安装