使用JS判断页面是首次被加载还是刷新


Posted in Javascript onMay 26, 2019

1 利用window.name属性在页面刷新时不会重置判断(在该属性空置的情况下可使用)

if(window.name == ""){
 console.log("首次被加载");
 window.name = "isReload"; // 在首次进入页面时我们可以给window.name设置一个固定值 
}else if(window.name == "isReload"){
  console.log("页面被刷新");
}

2 使用sessionStorage或cookie来判断

与window.name实现方法类似在首次加载时设置一个固定值 之后判断即可

这里以sessionStorage来为例

if(sessionStorage.getItem("isReload")){
   console.log("页面被刷新");
}else{
 console.log("首次被加载");
 sessionStorage.setItem("isReload", true)
}

3 可以使用window.chrome对象 (该方法只在谷歌浏览器中可用 其他浏览器无chrome对象)

该对象提供了一个loadTimes() 方法 执行该方法我们会得到一个有关页面性能的对象
其中有一个navigationType属性可以帮助我们判断页面是加载还是刷新
它有两个值 Reload(刷新) 和 Other(首次加载)

所以我们可以通过if判断:

if(sessionStorage.getItem("isReload")){
   console.log("页面被刷新");
}else{
 console.log("首次被加载");
 sessionStorage.setItem("isReload", true)
}

使用window.chrome.loadTimes方法会报警告

isreload.html:20 [Deprecation] chrome.loadTimes() is deprecated, instead use standardized API: Navigation Timing 2. https://www.chromestatus.com/features/5637885046816768.

官方已经说明该方法被弃用了 让我们使用 标准化API: Navigation Timing 2
所有上面代码需要改下:

if (window.performance.navigation.type == 1) {
 console.log("页面被刷新")
}else{
 console.log("首次被加载")
}

总结

以上所述是小编给大家介绍的使用JS判断页面是首次被加载还是刷新,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
javascript中String类的subString()方法和slice()方法
May 24 Javascript
JavaScript模版引擎的基本实现方法浅析
Feb 15 Javascript
基于angularjs实现图片放大镜效果
Aug 31 Javascript
JavaScript使用Range调色及透明度实例
Sep 25 Javascript
谈谈因Vue.js引发关于getter和setter的思考
Dec 02 Javascript
使用DeviceOne实现微信小程序功能
Dec 29 Javascript
微信小程序 定位到当前城市实现实例代码
Feb 23 Javascript
webpack多页面开发实践
Dec 18 Javascript
jquery实现下载图片功能
Jul 18 jQuery
vue 取出v-for循环中的index值实例
Nov 09 Javascript
vue 根据选择的月份动态展示日期对应的星期几
Feb 06 Vue.js
在vue中import()语法不能传入变量的问题及解决
Apr 01 Vue.js
Node.js 多进程处理CPU密集任务的实现
May 26 #Javascript
小程序封装路由文件和路由方法(5种全解析)
May 26 #Javascript
vue2.0 实现富文本编辑器功能
May 26 #Javascript
富文本编辑器vue2-editor实现全屏功能
May 26 #Javascript
vue中$refs, $emit, $on, $once, $off的使用详解
May 26 #Javascript
我要点爆”微信小程序云开发之项目建立与我的页面功能实现
May 26 #Javascript
vue指令做滚动加载和监听等
May 26 #Javascript
You might like
利用discuz实现PHP大文件上传应用实例代码
2008/11/14 PHP
php获取从html表单传递数组的方法
2015/03/20 PHP
简单谈谈php中的unicode和utf8编码
2015/06/10 PHP
JavaScript中Array 对象相关的几个方法
2006/12/22 Javascript
jQuery之折叠面板的深入解析
2013/06/19 Javascript
jQuery源码解读之removeAttr()方法分析
2015/02/20 Javascript
最流行的Node.js精简型和全栈型开发框架介绍
2015/02/26 Javascript
微信小程序 wxapp地图 map详解
2016/10/31 Javascript
详谈Ajax请求中的async:false/true的作用(ajax 在外部调用问题)
2017/02/10 Javascript
laravel5.3 vue 实现收藏夹功能实例详解
2018/01/21 Javascript
nodeJS模块简单用法示例
2018/04/21 NodeJs
JS非行间样式获取函数的实例代码
2018/06/05 Javascript
js replace 全局替换的操作方法
2018/06/12 Javascript
vue使用el-upload上传文件及Feign服务间传递文件的方法
2019/03/15 Javascript
详解React服务端渲染从入门到精通
2019/03/28 Javascript
基于ts的动态接口数据配置的详解
2019/12/18 Javascript
JS数组扁平化、去重、排序操作实例详解
2020/02/24 Javascript
react项目从新建到部署的实现示例
2021/02/19 Javascript
详解python中asyncio模块
2018/03/03 Python
Python中的 is 和 == 以及字符串驻留机制详解
2019/06/28 Python
PyTorch 解决Dataset和Dataloader遇到的问题
2020/01/08 Python
Python底层封装实现方法详解
2020/01/22 Python
Python打印特殊符号及对应编码解析
2020/05/07 Python
python爬虫看看虎牙女主播中谁最“顶”步骤详解
2020/12/01 Python
HTML5实现获取地理位置信息并定位功能
2015/04/25 HTML / CSS
h5调用摄像头的实现方法
2016/06/01 HTML / CSS
Betsey Johnson官网:妖娆可爱的连衣裙及鞋子、手袋和配件
2016/12/30 全球购物
Linux如何命名文件--使用文件名时应注意
2012/01/22 面试题
写好求职应聘自荐信的三部曲
2013/09/21 职场文书
经济信息系毕业生自荐信范文
2014/03/15 职场文书
阳光体育活动总结
2014/04/30 职场文书
小学综治宣传月活动总结
2014/07/02 职场文书
先进教育工作者事迹材料
2014/12/23 职场文书
幼儿学前班评语
2014/12/29 职场文书
材料员岗位职责
2015/02/10 职场文书
穷人该怎么创业?谨记以下几点
2019/07/11 职场文书