微信H5、网页、内置Web浏览器 清理缓存,微信浏览器缓存_h5重命名相关静态资源-程序员宅基地

技术标签: 清理缓存  浏览器缓存  微信H5缓存  X5内核缓存清理  微信网页清理缓存  公众号 / 小程序  

目录

一、写在前面:

1、浏览器缓存带来的好处:

2、浏览器缓存带来的弊端:

二、如何清除微信浏览器的缓存:

1、在IOS环境下手动清除微信缓存:

2、在Android环境下手动清除微信缓存:

三、清除微信浏览器缓存的其他解决方案:

1、在HTML页面的head中设置meta标签 为不缓存(但是这个种方法在微信浏览器中无效):

2、重命名相关静态资源:


一、写在前面:

网页浏览器为什么要有缓存(baiBrowser Caching,浏览器缓存)?

我们都知道,在浏览器中打开一个网址时会经过:URL 解析 -> DNS 查询 -> TCP 连接 -> 处理请求 -> 接受响应 -> 渲染页面等一系步骤后,并且在不出任何(如,网速太慢,突然断网,服务器出错,代码出错等)意外的情况下,页面内容才能正常的展现在我们眼前。

而且在网页中所加载各种资源,都要建立HTTP连接,客户端(浏览器) 和 服务器要经过三次握手,四次挥手,再到页面DOM树渲染等过程,其实挺不容易的(尤其是在以前的网络环境和软硬件技术都还不太好的时候,不过现在的飞速发展,软硬件等各方面条件都好多了!),所以为了可以提高页面的呈现速度,就有了这个浏览器缓存。

1、浏览器缓存带来的好处:

我们在第一次浏览网页时,默认情况下浏览器会自动缓存所加载的系列资源,当我们再次打开访问之前的这个网页时,会先查看缓存是否有本次请需要请求的资源,如果有就直接从缓存读取(如果没有就请求服务器),这样就便于我们在访问页面时:减少请求时间、节省网络流量,提高响应速度,我们带来更好的用户体验。

2、浏览器缓存带来的弊端:

缓存作为用户来讲确实有利,但是做为开发者来说,尤其是作前端开发的都知道,每当项目有新需求、版本更新迭代后,如果之前用户已经有的缓存时,所看到的页面还是之前浏览过的缓存效果,看不到更新后的效果,这种情况 尤其是在微信内置的浏览器中,更为严重(之前着急的时候,还让客服暂时教用户清除微信缓存来解决这个问题)。

二、如何清除微信浏览器的缓存:

由于微信浏览器在移动端 Android环境 和 IOS环境 中浏览器内核不一样;所以不同版本的微信 和 不同的系统 之间清理缓存的方式也就略有不同。

1、在IOS环境下手动清除微信缓存:

大至有以下几种清除方式(Android环境也适用)

  1. 先退出当前微信账号登陆,然后重新登录微信;
  2. 如果是微信公众号企业号等 先取关注,然后再重新关注。
  3.  进入页面后,右上角的 "…" 按扭,在屏幕下面弹出的选项中点击 "刷新"。
  4. 在微信底部导航菜单点击"我" ->  设置 -> 通用 -> 存储 -> 清理缓存清理

2、在Android环境下手动清除微信缓存:

在微信中打开 腾讯浏览器开发者服务提供的 X5内核调试专用页 网址:https://debugx5.qq.com,在微信浏览器中打开后,勾选要清除的选项,点击清除按扭即可!如下图所示:

注: 有的手机打开debugx5.qq.com可能会提示,"你使用的内核非X5内核,请前往。。。!"

出现以上情况后,请先微信浏览器中打开 http://debugmm.qq.com/?forcex5=true 这个网址 后,再打开 debugx5.qq.com !就能打开啦!

除了上面的清除缓存方法以外,在Android环境中还有一种可以达到清除缓存的效果,就是在Android手机的设置 -> 应用 -> 应用管理,找到微信,然后在应用管理里中去清除微信APP的缓存,如下图所示!

三、清除微信浏览器缓存的其他解决方案:

1、在HTML页面的head中设置meta标签 为不缓存(但是这个种方法在微信浏览器中无效)

<head>
    <meta http-equiv="Pragma" content="no-cache" />
    <meta http-equiv="Expires" content="0" />
    <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate"/>
</head>

2、重命名相关静态资源:

最后关于缓存问题,个人觉得还是要从开发上入手,因为不是所以的用户都会 或者 都愿意去清除缓存的,所以只有从最初的起点去规避这个问题。

原理就是:重命名资源主要是为了在加载网页相关资源时,不去读缓存,而是从服务器中去重新获取。只要重新给资源命合后,就会被当作新资源加载,就不会存在缓存问题啦!

但是如果在文件资源比较多的情况下,不可能一个个去手动改吧,这样也太麻烦了,所以我们一般都借助一些构建工具如Webpack、Gulp、FIS、Grunt、Vite等工具,可在配置文件中配置文件资源的输出路径、文件命名、大小限制等,配置好后在打包构建时自动给文件资源进行(一般是hash命名)重命名。现在做Web前端开发大部分都在用一些前端框架 如:Vue、React、Angurl等,它们都有一套完整的CLI脚手架,在最初构建项目时构建工具、默认配置等都帮我们做好了,非常方便,直接拿来使用即可!

打包生成后的文件资源如下图所示,每次打包生成后的文件资源,都会重新命名的,上线后就会当作新资源加载,所以就不会在去读取之前访问过的缓存文件了,并且只要开发以后不更新迭代版本(如果要更新迭代也不会影响,大不了用户在第一次加载时,重新请求一下文件资源,这点流量对用户来说跟本不是问题),用户在更新迭代后的第一次也会自动缓存的,这样一来用户体验 和 更新迭代 就互不影响啦!

如:xxx.html、xxx.jpg、xxx.css、xxx.js等;

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/muguli2008/article/details/109383100

智能推荐

hsqldb的使用方法-程序员宅基地

文章浏览阅读595次。现在很多开源项目使用hsqldb作为数据库。了解hsqldb的基本使用方法还是很必要的。这篇不是全面介绍hsqldb的文字,但我认为用这个笔记的内容调试程序够用了。 一、下载数据库,地址在http://sourceforge.net/projects/hsqldb/files/hsqldb/ 我使用的是1.8.0版本。假定下载解压后的目录是D:/hsqldb/, 那么hsqldb.jar在D:/hsqldb/lib目录下。这个jar文件是hsqldb的核心包 二、启动数据库,比如数据库名称为tes_hsqldb的使用

ubuntu查看 固态硬盘位置_ubuntu新增加固态硬盘,格式化并挂载到根目录下-程序员宅基地

文章浏览阅读1.2k次。前言:将固态硬盘装到电脑,ubuntu系统需要格式化并挂载才能正式使用将固态装在电脑上后,打开后端1:查看现有硬盘分区及挂载状态命令 :df -h没有新增的SSD固态硬盘2:查看服务器所有安装的硬盘状态(包括已安装和未安装的)命令: fdisk -l此时已经安装的磁盘,但是没有分区,先分区3, 将磁盘分区,分一个区挂载到根目录下命令:fdisk /dev/sdb (该目录是上面未安装的磁盘目录)..._怎么看固态硬盘在服务器上的挂载路径

TortoiseSVN使用简介_tortoisesvn 文件哪个版本好用-程序员宅基地

文章浏览阅读3.3k次,点赞3次,收藏16次。TortoiseSVN使用简介_tortoisesvn 文件哪个版本好用

iOS 屏幕适配浅谈-程序员宅基地

文章浏览阅读379次。作者 | 钱凯杏仁移动开发工程师,前嵌入式工程师,关注大前端技术新潮流。前端开发的屏幕适配其实算是基本功,每个码农在长期实践中都有自己的总结。在 iOS 平台上,苹果爸爸对适配的支持个人感觉很不人性化,提供了 AutoLayout、sizeClass 等技术,感觉没有前端类似 flexBox 这样的技术来得灵活。像是点歪了技能树,过于重视使用 xib 配置_cgfloat left 适配

MATLAB中eval函数和cell型数组的组合使用_matlab eval cell-程序员宅基地

文章浏览阅读674次。MATLAB中eval函数和cell型数组的组合使用一、evaleval的功能简单来说就是可以把字符串当做命令来执行。经常用于循环当中,特别是有些变量的名字中含有有规律的数字。二、{ }大括号,用于cell型的数组(就是前面讲的单元数组)的分配或引用。比如 a{3,3}=‘china’就是建立了一个3*3的单元数组,a(3,3)就是‘china’三、应用我们在matlab中有事可能会遇到a1、a2、a3…这样的组合,想利用for语句使用里面的数据却无法成功。(例如ai未定义等原因)此时我们使_matlab eval cell

tomcat启动占了12g_tomcat服务为何报内存相关错误??-程序员宅基地

文章浏览阅读86次。本帖最后由 linux_love 于 2014-9-19 11:46 编辑多谢各位英雄支持,这个问题困扰我N久了,昨天终于让我给拿下了,在Linux下有个CommitLimit 用于限制系统应用使用的内存资源,#grep -i commit /proc/meminfoCommitLimit: 20389524 kBCommitted_AS: 18541832 kB其中:CommitLim..._commited_as 被谁占了

随便推点

在windows server 2008 64位服务器上配置php环境_在2008服务器上面配置phpmyadmin访问-程序员宅基地

文章浏览阅读2.4w次。PHP是越来越受欢的开发语言,PHP是因网络而生,是专业于网络程序开发的基础平台.很多优势在些不作太多介绍.对于我们习惯了windows操作系统技术人员来讲,在windows系统上架设PHP环境更轻松些.接下来由向大家介绍2008 R2 64位的服务器如何配置最新PHP环境._在2008服务器上面配置phpmyadmin访问

python 特征选择卡方_4. 机器学习之特征选择-Python代码-程序员宅基地

文章浏览阅读719次。1. 特征选择------sklearn代码1.1 特征选择------方差法忽略warning错误import warningswarnings.filterwarnings("ignore")# 方差法from sklearn.feature_selection import VarianceThresholdX = [[0, 2, 0, 3], [0, 1, 4, 3], [0, 1, 1..._python 方差法选择特征

WebGL快速入门_webgl入门-程序员宅基地

文章浏览阅读2.3k次,点赞2次,收藏11次。WebGL是一种用于在Web浏览器中实现高性能3D图形的技术。本文将帮助读者快速入门WebGL,了解其基本概念和使用方法。我们将介绍WebGL的基本架构和API,包括如何创建WebGL上下文、渲染对象和着色器编程等。此外,我们还会深入探讨WebGL的基本原理和渲染管线,以及如何通过优化渲染流程来提升性能。通过学习本文,读者将能够理解WebGL的核心概念和使用方法,并能够开始开发高性能的3D应用程序。_webgl入门

C++中的String的常用函数用法总结_string函数-程序员宅基地

文章浏览阅读10w+次,点赞1.3k次,收藏6.1k次。一. string的构造函数的形式: string str:生成空字符串string s(str):生成字符串为str的复制品string s(str, strbegin,strlen):将字符串str中从下标strbegin开始、长度为strlen的部分作为字符串初值string s(cstr, char_len):以C_string类型cstr的前char_len个字..._string函数

金融风控训练营金融风控基础知识学习笔记_风控师学习笔记-程序员宅基地

文章浏览阅读162次。一、赛题理解和学习目标:本次挑战赛以个人信贷为背景,要求选手对金融风控之贷款是否违约进行预测,以此判断是否通过此项贷款的一项问题型比赛。通过学习Task1了解第一个学习内容,要求对金融风控的问题建立数学模型最后给定金融风险程度。在此过程中要了解混淆矩阵、AUC评价指标,KS统计量等二、学习内容:混淆矩阵就是一个2×2的矩阵分为真正类TP、真分类TN、假正类FT、假反类FNFP FN TP TN AUC被定义在ROC曲线下与坐标轴围成的面积(ROC曲线:以真阳性率._风控师学习笔记

哈希表 添加 增添 删除 获取方法 Js封装_js hash追加-程序员宅基地

文章浏览阅读237次。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>D._js hash追加

推荐文章

热门文章

相关标签