微信开发更新页面手机微信缓存

2019-03-20 13:55:53 xialong_927 阅读数 8997

在做微信开发的时候(主要是微信内网页或者比较大型的手机网站)的时候,更改了页面代码,但是微信内置浏览器有缓存,还是之前的效果,影响调试,而且还死活清除不掉!!!!!怎么办?

我的第一想法是关闭手机的微信进程,偶尔有效,但是大多数时候是无效的。

第二个方法,我还试过退出微信登录,然后退出微信(百度出来的方法,也不知道谁讲的),也是偶尔有用,大多数时候无效。

后来我想到一个百分之百有效的方法:Android有一个功能,那就是应用管理(一般在手机设置里边),在应用管理里边清除应用缓存!100%有效!(如果是iphone请参考下面一个方法)

如下图:

另外,还有一种方式,只对Android手机有效:(方法二)

在微信任意对话框(随便找个订阅号即可),发送以下网址

http://debugx5.qq.com

也可以直接用微信扫二维码

点击进入,然后就会出现一个类似浏览器的设置界面,这是QQ浏览器内核的设置界面

如图:

附:

IOS清理微信内置浏览器缓存

1、 取关公众号,重新关注;

2.、 退出微信账号登陆,重新登陆微信;

3、 微信设置-通用-存储-清理缓存;

4.、 进入页面,右上角‘...’选项中点击“刷新”

自动清理缓存

       h5页面设置meta标签

<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" />

一般浏览器还有用,碰到wx,并没有鸟用

文件加载设置版本号
h5很多都是静态资源,有些链接都是通过后台配的所以加版本号变得操作异常繁琐,解决起来也是摒弃了一些逻辑。不过值得欣慰的是,这个令人头皮发麻的问题得以解决!

版本号有两种:

        常见的是文件名传参,例如: demo.css?v=1535549856;
        建议使用md5文件名的方式: demo-9bee5121379679ec.css;

为啥用第二种,因为微信访问的时候有些场景可能会把参数或者参数值直接给忽略

完!!!

原文链接:https://blog.csdn.net/qq_31384551/article/details/81951234

2016-08-24 16:55:58 dashi2048 阅读数 8140
微信在各个上的缓存时间不一致,导致新修改的页面刷新后无法显示。
为什么呐?
修改页面直接相关的显示元素,也无法正常显示,在测试环境中,正常显示。
初步断定应该是页面缓存的问题。
通过网上搜索,得到以下几种解决方法:
1.在使用window.location.href跳转页面时,在url后面加上“?datetime=”+new Date().getTime();保证每次浏览的网页是最新的。
2.js或css更新后,在html引用的地方更新版本号,例如scr="../js/demo.js?v=20160420"。
3.对于图片url后不建议加时间戳,否则微信的图片缓存机制将失效,严重影响网页浏览速度。
使用上述方法,解决缓存页面导致不显示的问题。
问题分析:
初步断定,问题可能出在加载外联js和css文件缓存,所以给连接加上参数时间戳,狮最快和有效的解决方法。
2019-05-07 18:38:41 woyidingshijingcheng 阅读数 2228

前言

移动端开发中,经常会碰到微信缓存的问题,总体感觉而言,有太大的无可奈何,但是问题总归是要解决的。

先说说之前开发的问题

由于之前无论是公众号还是微信分享链接,都是经过充分测试后发布上线的,上线后即使更改了,也能在较快的时间内更新。所以对微信这块一直模棱两可的状态,没有从根本上解决这个缓存的问题。但是这次的需求不同,产品由于某个图片上的文字修改(仅仅一个数字的修改),等ui把图片发过来,然后上传到服务器上后,还是跟之前一样,也期待着资源会自动更新。

来看看现在的效果:

  1. chrome浏览器刷新后得到最新图片;
  2. 我自己的华为手机微信上刷新页面后得到最新图片;
  3. 将链接分享给其他同事,打开后图片是最新的;
  4. ios上的微信上链接刷新了图片也不更新,用手机浏览器打开是最新图片;

咋眼一看,明显存在缓存问题,并且刷新只对部分浏览器和设备有效。

没办法,继续折腾,网上一番搜索后,得到的办法是:

  1. 对js、css、html、图片等资源添加时间戳/版本号,例如:
    index.js?v=20190507;
    index.js?timetamp=(new Date()).getTime()
  2. 文件名采用hash值得方式(通常采用md5加密)
    index-72c58a499f4c.js;

因为我的分享页面是在一整个项目中的,默认就是采用的第一种方案,所以我直接修改了图片的名称,打包编译后上传js文件到服务器,得到的效果是:

  1. chrome浏览器刷新后得到最新图片;
  2. android微信和手机浏览器打开链接均已更新;
  3. 将链接分享给其他同事,打开后图片是最新的;
  4. ios上的微信上链接刷新后更新,用手机浏览器打开是最新图片;
  5. 企业微信上出了问题,图片资源依然是之前的
  6. 有部分用户反馈还是没有更新,但是具体设备不知道

为了解决这个顽固的bug,探究产生的根本原因,我先将页面下线了,(由于我们的分享链接还处于内部发布,还未对外公布,这么干的风险也是不小的),因为服务器设置了cdn缓存,时长为2分钟,所以开始下线后一般的设备,在5分钟以内基本都打不开了,但是企业微信到5分钟以后刷新还能打开页面,后面时间更久了才不能打开。于是我重新上传了页面,之前的问题基本都解决了。

虽然上面解决了问题,但是避免不了下次还要进行同样的操作,所以问题的根本原因还是需要找到。

分析上面的过程,即使采用了链接后面加版本号这种方式,由于首页的地址无法修改(已经发布到内部了,不能去修改),所以入口文件被缓存在了企业微信本地,到后面删除文件后,当cdn的缓存失效后页面才被更新,所以根本原因是页面的缓存策略问题。

根本解决办法

直到看到了这篇文章
文章截图
链接: 微信h5缓存-李子博客.
要想解决这个问题,根本原因还是得从服务器下手,首先了解几个概念:

浏览器的缓存机制
在这里插入图片描述
no-cache介绍
链接: 浏览器的缓存机制.

所以需要从服务器的角度来设置,因为我们使用的oss ,所以在直接给对应资源设置header即可。
oss设置headers
设置Cache-Control

配置完这个头部缓存设置,服务器资源更新时才有策略缓存,实现了资源更新,页面更新。

2016-12-21 15:38:50 u013248535 阅读数 6770

在微信开发时,常常通过微信公众号菜单或微信扫一扫进入移动页面,这个时候如果你修改了对应的CSS或者JS文件,然后在微信里访问修改过后的页面,往往页面效果还会停留在之前的某个版本上,这就是微信页面缓存问题。很早就碰到过这个问题,现在我把有效的两种解决方式写在下面:
(1)直接在引用改动频繁的CSS文件或JS文件的链接后面,增加一个无用参数,如<link href="../static/index.css?saasd=2" rel="stylesheet" />这里的saasd,后面的值如果是JSP里面可以直接用随机数或时间戳代替,保证每次都不一样,从而解决缓存问题。如果是Html页面,我没有仔细去查看JS里面直接去超链接中生成并嵌入随机数的方法,所以我每次修改完文件之后,都直接手动修改这个值。
(2)直接修改对应的CSS或JS文件名,并注意修改对应的引用路径。
当然第一种是最便捷的。

2018-08-22 21:19:44 qq_31384551 阅读数 77058

在做微信开发的时候(主要是微信内网页或者比较大型的手机网站)的时候,更改了页面代码,但是微信内置浏览器有缓存,还是之前的效果,影响调试,而且还死活清除不掉!!!!!怎么办?

我的第一想法是关闭手机的微信进程,偶尔有效,但是大多数时候是无效的。

第二个方法,我还试过退出微信登录,然后退出微信(百度出来的方法,也不知道谁讲的),也是偶尔有用,大多数时候无效。

后来我想到一个百分之百有效的方法:Android有一个功能,那就是应用管理(一般在手机设置里边),在应用管理里边清除应用缓存!100%有效!(如果是iphone请参考下面一个方法【废弃】

如下图:

另外,还有一种方式:来自百度经验    原文地址

ios使用此方法不适用,免得被各种喷

在微信任意对话框(随便找个订阅号即可),发送以下网址

 

debugx5.qq.com

 

ios微信  见https://blog.csdn.net/qq285679784/article/details/78258487?locationNum=4&fps=1

也可以直接用微信扫二维码

点击进入,然后就会出现一个类似浏览器的设置界面,这是QQ浏览器内核的设置界面

如图:

推荐下载

《kotlin入门书籍》pdf

《阿里技术书籍》pdf

《Web后台管理模板(仿Win10系统)》