V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
phpcxy
V2EX  ›  程序员

微信内浏览器缓存网页有什么办法解决啊?

  •  
  •   phpcxy ·
    phpcxy · 2014-10-22 09:37:21 +08:00 · 54179 次点击
    这是一个创建于 3693 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近开发了个公众号,有一些页面是要跳转到微信浏览器打开的,使用angularjs开发。
    现在还是在调试阶段,在android版微信浏览器都缓存html静态资源,每次有新版本发布都不能马上生效。有时候要去清了微信缓存才生效,有时候连清了微信缓存都不行!

    求教啊!
    29 条回复    2015-07-21 20:51:18 +08:00
    phpcxy
        1
    phpcxy  
    OP
       2014-10-22 09:38:29 +08:00
    有什么办法不然微信浏览器缓存我的网站呢
    wuliao49
        2
    wuliao49  
       2014-10-22 09:45:45 +08:00
    angularjs没用过。
    如果仅仅是让一个网页不缓存的话 通过META设置即可。
    缓存 但是希望特定场合不取缓存的话,这种场合下URL后面拼接个随机串接口。
    nayuki
        3
    nayuki  
       2014-10-22 09:46:55 +08:00
    把localStorage用起来哈,这样处理缓存起来会方便很多咯,对于文件,文件名上追加版本号哈= =,资源文件可以异步的引入到localStorage中,每次加载资源从localStorage中取
    wzxjohn
        4
    wzxjohn  
       2014-10-22 09:48:17 +08:00
    很遗憾如果网址相同的话没有办法。。。清微信缓存是100%可以的。但是如果你的安卓上装了QQ浏览器,实际上微信是调用QQ浏览器,所以QQ浏览器的缓存也要清。
    目前来看只能在URL后面拼接随机字串比较靠谱了。。。
    cxh116
        5
    cxh116  
       2014-10-22 09:52:24 +08:00
    域名用泛指向,需要清缓存的时候换个二级域名访问
    good
        6
    good  
       2014-10-22 10:08:31 +08:00
    @phpcxy url 加上一些 随机的参数 如 ?1323223
    mouseshi
        7
    mouseshi  
       2014-10-22 10:11:06 +08:00
    楼上办法可行
    Mac
        8
    Mac  
       2014-10-22 10:19:14 +08:00
    一般都是用time()生成一个UNIX 时间序列,然后在在URL最后加上
    herold519
        9
    herold519  
       2014-10-22 11:13:05 +08:00
    ...退出重新登录。。
    winsky027
        10
    winsky027  
       2014-10-22 11:14:24 +08:00
    url后面加随机数CDN会失效,版本号更合理
    paloalto
        11
    paloalto  
       2014-10-22 11:26:12 +08:00
    @wzxjohn 如果没装qq浏览器呢?
    dongcheng
        12
    dongcheng  
       2014-10-22 11:34:33 +08:00
    目前是用PHP写HTML文本,每次都刷出新的内容。不知道其他人试过没。

    可以确定是JS和图片都被缓存了。
    adjusted
        13
    adjusted  
       2014-10-22 11:41:17 +08:00
    localstorage +1,离线app用过,一般不会超的,每次只读取个manifest.
    phpcxy
        14
    phpcxy  
    OP
       2014-10-22 11:45:13 +08:00
    看了大家回复,看来只能试试在html后加版本号的方案试试了。
    由于我现在是在微信公众号里面的自定义菜单打开的链接到我的网页,只能先跳到PHP里执行一个302跳转来加版本号了。
    wzxjohn
        15
    wzxjohn  
       2014-10-22 11:50:00 +08:00 via iPhone
    @paloalto 那就调用WebView撒,我记得在安卓上叫什么x5?还是啥的。。。
    ityao
        16
    ityao  
       2014-10-22 14:03:04 +08:00   ❤️ 1
    html加版本号也不行,因为缓存就是旧的入口页面吧,我也很纠结这个!
    phpcxy
        17
    phpcxy  
    OP
       2014-10-22 14:19:49 +08:00
    @ityao 所以我想把入口放在PHP里面做302跳转
    paloalto
        18
    paloalto  
       2014-10-22 14:47:08 +08:00
    @wzxjohn 你是怎么调试微信的 webview 里的前端页面的?
    paloalto
        19
    paloalto  
       2014-10-22 14:47:55 +08:00
    哎 刚发现上面那句话有三个的。精简一下:怎么调试微信 webview 里的前端页面
    ityao
        20
    ityao  
       2014-10-22 14:49:40 +08:00
    @phpcxy 这个够狠,不过问题没那么严重吧,就过会就好了,不过要联调微信的oauth的确麻烦,我之前也弄了好一会
    zythum
        21
    zythum  
       2014-10-22 14:56:50 +08:00   ❤️ 2
    浏览器貌似是从webview的上层做的缓存。就是如果请求过了这个地址。就会存在本地。之后不取线上了。试试写头信息
    <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
    <meta http-equiv="Pragma" content="no-cache" />
    <meta http-equiv="Expires" content="0" />
    qiongqi
        22
    qiongqi  
       2014-10-22 16:35:26 +08:00
    之前遇到的问题是cookie的,现象是微信切换用户时,cookie信息没清掉。
    没办法,只能在每个入口都调用下oauth。。
    wzxjohn
        23
    wzxjohn  
       2014-10-22 16:52:05 +08:00
    @paloalto 哈哈我不是做前端的,我只是就安卓微信调用的浏览器内核说一下,免得大家遇到坑。。。
    viator42
        24
    viator42  
       2014-10-22 16:57:31 +08:00
    取消再重新关注应该好使。
    paloalto
        25
    paloalto  
       2014-10-22 18:00:53 +08:00
    @wzxjohn soga。 我前段时调试 android 的时候也发现了,有一个css 的问题只出现在了微信 webview 和 qq 浏览器中。
    ityao
        26
    ityao  
       2014-11-22 08:22:58 +08:00
    @zythum 实测你的写法可行, 请大家参考!
    hahamy
        27
    hahamy  
       2015-02-04 06:54:39 +08:00
    @ityao 试了不行,图片还是缓存了
    forerunner
        28
    forerunner  
       2015-05-27 23:45:40 +08:00
    我OAuth授权的时候全部带着随机数参数,然后一些页面上标记注明禁止缓存(如21楼所说的方法)
    jiongxiaobu
        29
    jiongxiaobu  
       2015-07-21 20:51:18 +08:00
    12楼既然说html不缓存,那调用js或者图片的时候在js或者图片上加上个?时间不就好了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1078 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 18:22 · PVG 02:22 · LAX 10:22 · JFK 13:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.