背景:微信内网页开发

1.症状: 客户反馈系统某功能在部分客户手机上有bug,次bug在上线时同类手机已做调整测试,初步判断微信缓存导致。

让客户清理微信缓存等都不行(以前微信版本可以略坑),最后让客户直接重装了微信就好了(调研阶段,不可能让所有人这么做)。

2.解决方法:通过网页的meta解决, 在网页的head标签内加入如下代码:

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">

3.知识扩展

A.页面的缓存介绍

HTML的HTTP协议头信息中控制着页面在几个地方的缓存信息,包括浏览器端,中间缓存服务器端(如:squid等),Web服务器端。本文讨论头信息 中带缓存控制信息的HTML页面(JSP/Servlet生成好出来的也是HTML页面)在中间缓存服务器中的缓存情况。

HTTP协议中关于缓存的信息头关键字包括Cache-Control(HTTP1.1),Pragma(HTTP1.0),last-Modified,Expires等。

HTTP1.0中通过Pragma 控制页面缓存,可以设置:Pragma或no-cache。网上有非常多的文章说明如何控制不让浏览器或中间缓存服务器缓存页面,通常设置的值为no- cache,不过这个值不这么保险,通常还加上Expires置为0来达到目的。但是如我们刻意需要浏览器或缓存服务器缓存住我们的页面这个值则要设置为 Pragma。

HTTP1.1中启用Cache-Control 来控制页面的缓存与否,这里介绍几个常用的参数:

  • no-cache,浏览器和缓存服务器都不应该缓存页面信息;
  • public,浏览器和缓存服务器都可以缓存页面信息;
  • no-store,请求和响应的信息都不应该被存储在对方的磁盘系统中;
  • must-revalidate,对于客户机的每次请求,代理服务器必须想服务器验证缓存是否过时;

Last-Modified只页面的最后生成时间,GMT格式;

Expires过时期限值,GMT格式,指浏览器或缓存服务器在该时间点后必须从真正的服务器中获取新的页面信息;

上面两个值在JSP中设置值为字符型的GMT格式,无法生效,设置long类型才生效;

B.html页面中meta的作用

meta是用来在HTML文档中模拟HTTP协议的响应头报文。meta 标签用于网页的<head>与</head>中,meta 标签的用处很多。meta 的属性有两种:name和http-equiv。name属性主要用于描述网页,对应于content(网页内容),以便于搜索引擎机器人查找、分类(目前几乎所有的搜索引擎都使用网上机器人自动查找meta值来给网页分类)。这其中最重要的是description(站点在搜索引擎上的描述)和keywords(分类关键词),所以应该给每页加一个meta值。比较常用的有以下几个:

  name 属性

  1、<meta name="Generator" contect="">用以说明生成工具(如Microsoft FrontPage 4.0)等;

  2、<meta name="KEYWords" contect="">向搜索引擎说明你的网页的关键词;

  3、<meta name="DEscription" contect="">告诉搜索引擎你的站点的主要内容;

  4、<meta name="Author" contect="你的姓名">告诉搜索引擎你的站点的制作的作者;

  5、<meta name="Robots" contect= "all|none|index|noindex|follow|nofollow">

  其中的属性说明如下:

  设定为all:文件将被检索,且页面上的链接可以被查询;

  设定为none:文件将不被检索,且页面上的链接不可以被查询;

  设定为index:文件将被检索;

  设定为follow:页面上的链接可以被查询;

  设定为noindex:文件将不被检索,但页面上的链接可以被查询;

  设定为nofollow:文件将不被检索,页面上的链接可以被查询。

  http-equiv属性

  1、<meta http-equiv="Content-Type" contect="text/html";charset=gb_2312-80">

和 <meta http-equiv="Content-Language" contect="zh-CN">用以说明主页制作所使用的文字以及语言;

  又如英文是ISO-8859-1字符集,还有BIG5、utf-8、shift-Jis、Euc、Koi8-2等字符集;

  2、<meta http-equiv="Refresh" contect="n;url=http://yourlink">定时让网页在指定的时间n内,跳转到页面http://yourlink;

  3、<meta http-equiv="Expires" contect="Mon,12 May 2001 00:20:00 GMT">可以用于设定网页的到期时间,一旦过期则必须到服务器上重新调用。需要注意的是必须使用GMT时间格式;

  4、<meta http-equiv="Pragma" contect="no-cache">是用于设定禁止浏览器从本地机的缓存中调阅页面内容,设定后一旦离开网页就无法从Cache中再调出;

  5、<meta http-equiv="set-cookie" contect="Mon,12 May 2001 00:20:00 GMT">cookie设定,如果网页过期,存盘的cookie将被删除。需要注意的也是必须使用GMT时间格式;

  6、<meta http-equiv="Pics-label" contect="">网页等级评定,在IE的internet选项中有一项内容设置,可以防止浏览一些受限制的网站,而网站的限制级别就是通过meta属性来设置的;

  7、<meta http-equiv="windows-Target" contect="_top">强制页面在当前窗口中以独立页面显示,可以防止自己的网页被别人当作一个frame页调用;

  8、<meta http-equiv="Page-Enter" contect="revealTrans(duration=10,transtion= 50)">和<meta http-equiv="Page-Exit" contect="revealTrans(duration=20,transtion=6)">设定进入和离开页面时的特殊效果,这个功能即FrontPage中的“格式/网页过渡”,不过所加的页面不能够是一个frame页面。

微信缓存导致调整内容不生效相关推荐

  1. 万字长文读懂微信“看一看”内容理解与推荐

    内容理解与推荐 相信对于不少人而言微信已经成为获取资讯的主要场景.与此同时,由于微信用户群体的庞大,也吸引了大量的内容生产者在微信公众平台创造内容,以获取用户关注.点赞.收藏等.微信内的内容推荐产品: ...

  2. 王者服务器维护杨戬,王者荣耀杨戬加强 王者荣耀2021年3月19日体验服英雄调整内容...

    王者荣耀2021年3月19日体验服更新中有英雄调整,本次调整的英雄有成吉思汗.鲁班大师.娜可露露.司空震.刘备.艾琳.狂铁.女娲.杨戬,想知道调整内容的玩家,下面小编分享了王者荣耀3月19日体验服英雄 ...

  3. iphone 微信缓存_iPhone缓存

    iphone 微信缓存 2010 update: Lo, the Web Performance Advent Calendar hath moved 2010年更新: Lo, Web Perform ...

  4. redis 清空缓存_「镜头回放」简直了!spring中清除redis缓存导致应用挂死

    异常场景 springWeb应用一直运行正常,同事最近反应,每次版本更新完毕,刷新缓存,就会导致应用挂死.只有重启redis应用才恢复正常. 项目概况 springWeb项目,常用配置表做了redis ...

  5. 禁用微信浏览器字体调整的方法

    一.问题场景 使用rem适配移动端时,微信浏览器可以调整页面根元素字体大小,导致布局错乱. 解决办法:禁用微信浏览器字体调整. 二.IOS禁止微信调整字体大小 body {-webkit-text-s ...

  6. ajax浏览器操作发生异常,解决IE浏览器缓存导致AJAX请求数据异常

    IE10浏览器会把AJAX请求的数据都缓存下来,然后每次想去刷新数据时发现数据都是一样的,于是导致数据显示异常. 解决方法: 在页面 标签里,加上以下声明: 保存后,刷新页面,重新访问即可. 说明:最 ...

  7. 微信tinker导致冷启动变慢的问题优化

    微信tinker导致冷启动变慢的问题优化 1. Android S用户反馈微信启动慢 2. 抓取微信systrace查看一下 3. tinker对冷启动时间的影响 4. 修改方案 5. Open De ...

  8. 打印html时字号不对,HTML+CSS入门 移动端页面字体在微信被放大导致排版错乱如何解决...

    本篇教程介绍了HTML+CSS入门 移动端页面字体在微信被放大导致排版错乱如何解决,希望阅读本篇文章以后大家有所收获,帮助大家HTML+CSS入门. < 微信调整了字体大小会放大网页的字体,导致 ...

  9. 域名升级访问中拿笔记好_有道云笔记被微信屏蔽,微信:部分链接内容有色情问题...

    据新浪科技报道,有消息称网易旗下的有道云笔记被微信屏蔽.腾讯回应称,有道云笔记微信的部分链接中的内容存在色情问题. 腾讯表示,目前已告知网易违规原因,对方正在处理,去除违规内容后可以通过申诉恢复. 用 ...

最新文章

  1. Django 第三方引用富文本编辑器6.1
  2. 互联网或将进入泡沫2.0时代
  3. Py之PyTables:PyTables的简介、安装、使用方法详细攻略
  4. java命令可以但是javac命令找不到
  5. 我是如何学习写一个操作系统(五):故事的高潮之进程和线程1
  6. 14:IO之字符字节流
  7. 【Floyed】【匈牙利算法】导弹(jzoj 1610)
  8. 如何使用notepad运行python程序
  9. 漏洞挖掘、漏洞分析和漏洞利用
  10. 基于JAVA+SpringBoot+Mybatis+MYSQL的疫情信息管理系统
  11. iOS多线程 的 线程同步
  12. C# Winform重启软件
  13. 信佑7 linux,信佑无盘、顺无盘通用型万能包,镜像包,linux无盘
  14. [面试问答] 面试常问的40个问题 附带经典答案!
  15. 重标极差法(R/S)在matlab上的实现
  16. 【数据结构】悬空指针和野指针
  17. ABB机器人系统和出错信息
  18. 运维面试题(面前准备)
  19. 约瑟夫问题的理解与解决(丢手帕问题)
  20. 深入理解java多态没有烤山药的存在,java就不香了吗?

热门文章

  1. 使用虹软SDK实现离线人脸注册,人脸登录(H5-JS前端,java后台)
  2. 基于springboot学生公寓管理系统-计算机毕业设计源码+LW文档
  3. 明伟LRS-350-24方案,送BOM表,原理图、PCB,可编辑。 以及结构图
  4. mysql 索引超767_mysql Index column size too large 超过767错误解决方案(转)
  5. Halcon学习---图像采集助手
  6. 仿牌独立站如何通过PayPal.Me亲友付进行收款
  7. 周志华《机器学习》第一章课后习题
  8. http://www.blogbus.com/eastsun-logs/7762285.html
  9. 计算机教师格言座右铭,教师奋斗励志格言座右铭100句
  10. 屌丝还是文艺范儿:小米2 VS MX2