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

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

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

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

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