当前位置: 首页 > news >正文

解决浏览器缓存问题

1.index.html文件meta标签添加属性

<meta name="viewport" content="width=device-width,initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no" viewport-fit=cover  >

2.提前main.html处理逻辑再跳转到index.html页

<script>// 解决浏览器缓存function timestamp(url) {const getTimestamp = new Date().getTime()if (url.indexOf('?') > -1) {url = url + '×tamp=' + getTimestamp + '&loginType=' + loginType} else {url = url + '?timestamp=' + getTimestamp + '&loginType=' + loginType}return url}const getUrlParam = name => {const reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)')const value = window.location.search.substr(1).match(reg)if (value != null) {// 对参数值进行解码return decodeURIComponent(value[2])}return null}const loginType = getUrlParam('loginType')// console.log('main.html当前url链接地址:' + window.location.href)const url = './index.html'const newUrl = timestamp(url, loginType)window.open(newUrl, '_self')
</script>

3.动态加载文件

3.1 封装动态加载、移除文件方法
/*** 动态加载css文件* @param {*} url* @param {*} isCache*/
export function loadCSS(url, isCache = true) {let element = document.createElement('link')element.setAttribute('rel', 'stylesheet')element.setAttribute('type', 'text/css')if (isCache) {element.setAttribute('href', url + '?t=' + new Date().getTime())} else {element.setAttribute('href', url)}document.getElementsByTagName('head')[0].append(element)// document.head.appendChild(element)
}/*** 动态加载js文件* @param {*} src* @param {*} callback*   loadScript("",function(){*   console.log("加载成功")* })* var that = this; 在方法里面使用that*/
export function loadJS(jsUrl, callback, isCache = true) {const script = document.createElement('script')const head = document.headscript.type = 'text/JavaScript'if (isCache) {script.src = jsUrl + '?t=' + new Date().getTime()} else {script.src = jsUrl}if (script.addEventListener) {script.addEventListener('load', callback, false)}document.getElementsByTagName('head')[0].append(script)// head.appendChild(script)
}/*** 移除引用的JS/CSS文件* @param filename 文件名称* @param filetype 文件类型 js/css*/
export const removeFileJSandCSS = (filename, filetype) => {const targetElement = filetype === 'js' ? 'script' : filetype === 'css' ? 'link' : 'none'const targetAttr = filetype === 'js' ? 'src' : filetype === 'css' ? 'href' : 'none'const allSuspects = document.getElementsByTagName(targetElement)for (let i = allSuspects.length; i >= 0; i--) {if (allSuspects[i] &&allSuspects[i].getAttribute(targetAttr) != null &&allSuspects[i].getAttribute(targetAttr).indexOf(filename) != -1)allSuspects[i].parentNode.removeChild(allSuspects[i])}
}
3.2 页面引入
removeFileJSandCSS('nationality.js', 'js')
loadCSS('./jQuery/jquery-ui.min.css')
loadJS('./jQuery/jquery-ui.min.js', () => {})

相关文章:

  • bean依赖属性配置
  • [最优化理论] 梯度下降法 + 精确线搜索(单峰区间搜索 + 黄金分割)C++ 代码
  • 软件工程 - 第8章 面向对象建模 - 2 静态建模
  • 08_Collection集合2
  • 关于我离破500粉丝感受
  • Vue3中reactive和ref对比
  • 二叉树的基本操作实现包括创建二叉树、插入节点、搜索节点、删除节点、遍历二叉树等详解
  • Python安装步骤介绍
  • 【无标题】心灯
  • 【Redis】Redis缓存使用问题
  • 基于springboot实现的垃圾分类管理系统
  • Linux(13):例行性工作排程
  • 带头双向循环链表:一种高效的数据结构
  • 自动化横行时代,手工测试如何突破重围?测试之路...
  • 第一章 Windows环境下的JDK安装与环境配置
  • Google 是如何开发 Web 框架的
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • axios 和 cookie 的那些事
  • docker-consul
  • iOS 系统授权开发
  • js对象的深浅拷贝
  • JS函数式编程 数组部分风格 ES6版
  • Laravel深入学习6 - 应用体系结构:解耦事件处理器
  • leetcode98. Validate Binary Search Tree
  • nodejs:开发并发布一个nodejs包
  • vue.js框架原理浅析
  • vue:响应原理
  • 聚类分析——Kmeans
  • 七牛云假注销小指南
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 异常机制详解
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • scrapy中间件源码分析及常用中间件大全
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • ​LeetCode解法汇总518. 零钱兑换 II
  • #每天一道面试题# 什么是MySQL的回表查询
  • (07)Hive——窗口函数详解
  • (搬运以学习)flask 上下文的实现
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (附源码)springboot码头作业管理系统 毕业设计 341654
  • (力扣记录)1448. 统计二叉树中好节点的数目
  • (三分钟)速览传统边缘检测算子
  • (原創) 物件導向與老子思想 (OO)
  • (转)负载均衡,回话保持,cookie
  • (转)平衡树
  • *上位机的定义
  • .NET CF命令行调试器MDbg入门(三) 进程控制
  • .NET Core 中的路径问题
  • .net解析传过来的xml_DOM4J解析XML文件
  • .NET学习教程二——.net基础定义+VS常用设置
  • /usr/bin/perl:bad interpreter:No such file or directory 的解决办法
  • /var/lib/dpkg/lock 锁定问题
  • ::before和::after 常见的用法