切换浏览器tab刷新实现
标签: js
缘起
最近在做一个活动需求,需求交互有跨项目,跳转到另一个项目里完成指定任务,再回来领取相应任务奖励,产品十分反感要求用户主动刷新浏览器才更新活动页的任务信息。
解决方案
- 方案1:如果项目不考虑ie10以下浏览器,可以通过html5新增的Page Visibility API来实现,示例代码如下:
document.addEventListener('visibilitychange', function() {
var isHidden = document.hidden;
if (!isHidden) {
// 做数据更新操作,重新发起请求或者直接刷新当前页面
}
});
- 方案2:如果对兼容性有一定要求,则可以考虑换用当前窗口获得焦点js事件,示例代码如下:
//当前窗口得到焦点
window.onfocus = function() {
// 做数据更新操作,重新发起请求或者直接刷新当前页面
};
方案3:做数据轮询请求,每隔几秒做一次数据更新。
方案4:可以和产品商量是否可以在想做切换刷新的区域放上一个刷新按钮,点击更新当前区域数据。
最终选择
产品要求兼容IE8+,方式1放弃了,我又不想做轮询刷新,增加服务器的压力,方式3也放弃了,跟产品协商增加一个局部刷新按钮,产品嫌弃丑,于是最终选择方案2
切换浏览器tab刷新实现的更多相关文章
- Puppeteer笔记(七):Puppeteer切换浏览器TAB页
一.Puppeteer切换浏览器TAB页 1.browser.pages() 二.上手实例Demo 功能测试:打开www.ly.com首页,定位搜索"苏州",获取新打开页面上的搜索 ...
- 监听浏览器tab切换
监听浏览器切屏 为了完成验证用户在切换浏览器tab时进行登录再次认证需求需要监听浏览器切换窗口 if (document.hidden !== undefined) { document.addEve ...
- js监听浏览器tab窗口切换
js监听浏览器tab窗口切换 ——IT唐伯虎 摘要:js监听浏览器tab窗口切换. if (document.hidden !== undefined) { document.addEventLis ...
- 监听浏览器tab选项卡选中事件,点击浏览器tab标签页回调事件,浏览器tab切换监听事件
js事件注册代码: <script> document.addEventListener('visibilitychange',function(){ //浏览器tab切换监听事件 if( ...
- Selenium-Switch--切换浏览器tab/iframe/alart
Switch 我们在UI自动化测试时,总会出现新建一个tab页面.弹出一个浏览器级别的弹框或者是出现一个iframe标签,这时我们用WebDriver提供的Api接口就无法处理这些情况了.需要用到Se ...
- vue中setTimeout切换浏览器页签时怎么清除解决方案
大家都知道,vue中有完整的生命周期,this.$router.push('')可以跳到相应的页面中,在beforeDestroy中可以监听到,将定时器清空,又或是通过this._isDestroye ...
- chrome浏览器tab页内存占用变大,网站变慢为哪般?
问题概述: 公司做的是BS应用. 之前我们的后台服务器程序是带状态的,用ehcache存储登录状态:这两天被我改成了redis存储,应用本身不再存储登录状态. 然后自测,我在测试某个很耗时间的网页操作 ...
- 微信小程序关于tabbar点击切换数据不刷新问题
微信小程序中经常遇到的需求就是我提交了一个表单或者进行了一个操作,需要在我的个人中心页面中实时显示出来,但是小程序中的tabbar切换类似于tab切换 并不会进行页面刷新请求 所以总是会造成一些数据更 ...
- gulp最佳实践(包含js,css,html预编译,合并,压缩,浏览器自动刷新)
gulp是基于流的自动化构建工具官方网址:http://www.gulpjs.com.cn/ 一.安装需要的模块 1.新建package.json,输入下面的内容 { "name" ...
- ASP.NET 验证码 不同浏览器 不刷新问题
具体为什么不刷新是缓存机制不同,验证码图片的src或ImageUrl的获取是来自一个文件,由于连接地址没变所以不同内核浏览器有的会认为源没有变,解决办法就是在连接后面加上一个随机参数如可以用JS的Ma ...
随机推荐
- 前置机器学习(二):30分钟掌握常用Jupyter Notebook用法
相较于Pycharm执行py文件来说,Jupyter Notebook可保存执行过程,添加图表.注释等富文本说明的功能,使其对机器学习的开发者格外友好. 本文包含机器学习环境安装,Jupyter No ...
- Nuxt Kit 组件管理:注册与自动导入
title: Nuxt Kit 组件管理:注册与自动导入 date: 2024/9/15 updated: 2024/9/15 author: cmdragon excerpt: Nuxt Kit 为 ...
- C#/.NET/.NET Core技术前沿周刊 | 第 5 期(2024年9.9-9.15)
前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录.追踪C#/.NET/.NET Core领域.生态的每周最新.最实用.最有价值的技术文章.社区动态.优质项目和学习资源等. ...
- Vue3——环境变量的配置
vue3环境变量的配置 开发环境(development) 测试环境(testing) 生产环境(production) 项目根目录分别添加 开发.生产和测试环境的文件! .env.developme ...
- laravel框架中保留条件搜索
前段代码 <form action="admin_index" method="get"> <input type="text&qu ...
- 精彩回顾|【ACDU 中国行·西安站】数据库主题交流活动成功举办!
2023年12月23日下午,[ACDU 中国行·西安站]在西安天骊君廷大酒店圆满落下帷幕.本次活动由中国数据库联盟(ACDU)联合墨天轮社区,浪潮数据库 及蚂蚁集团 OceanBase 共同主办,特邀 ...
- Vue-Router 是干什么的,原理是什么?
传统的项目中,页面的切换和跳转使用的是超链接实现,但是目前的SPA 是基于组件和路由实现的,页面的切换和跳转是由路由机制完成,区别是更新了视图但不重新请求页面: 原理是把url 和组件之间建立映射关系 ...
- gost socks5代理
购买云主机 开放所有tcp端口 配置云主机 https://mirrors.tuna.tsinghua.edu.cn/elrepo/kernel/el8/x86_64/ 选择清华镜像源 [root@i ...
- 封神台 SQL注入 靶场 (猫舍)手动注入
封神台 SQL注入 靶场 (猫舍)手动注入 靶场地址 http://pu2lh35s.ia.aqlab.cn/?id=1 使用脚本 可以直接使用sqlmap脚本 直接 对这个地址进行测试 不过这样实在 ...
- KubeSphere 社区双周报 | KubeKey v3.0.0 发布 | 2022-11-10
KubeSphere 从诞生的第一天起便秉持着开源.开放的理念,并且以社区的方式成长,如今 KubeSphere 已经成为全球最受欢迎的开源容器平台之一.这些都离不开社区小伙伴的共同努力,你们为 Ku ...