位置: 编程技术 - 正文

JS区分浏览器页面是刷新还是关闭(js区分浏览器页面大小)

编辑:rootadmin

推荐整理分享JS区分浏览器页面是刷新还是关闭(js区分浏览器页面大小),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:js区分浏览器页面和页面,js中浏览器对象的层次关系,js区分浏览器页面和页面,js怎样判断浏览器是不是ie8,js怎么判断浏览器版本,js判断浏览器是不是ie,js区分浏览器页面和页面,js区分浏览器页面大小,内容如对您有帮助,希望把文章链接给更多的朋友!

Web开发者在系统开发中经常要面对产品经理各式各样的需求,当然,大部分对产品体验还是有帮助的,例如我们今天提到的刷新页面,前进后退,关闭浏览器标签时,为了避免用户误操作,需给出二次确认提示框,这个相信大家都非常熟悉了,采用浏览器提供的BOM事件机制就可以解决,使用window对象的onbeforeunload事件即可,如果产品经理只提出这样的需求,那确实无可厚非,然而其需要的不仅仅是这些...

例如,我们一次项目开发中,产品经理就针对我们的实现提出了“改进方案”:

你们这弹出框太丑了,跟系统整体风格不搭调啊,不能使用咱们自己组件库中的Dialog吗?很好的问题...我只想说,you can you up...

你们这刷新和关闭标签页中展示的文案一样啊,需要区分对待下,刷新提示XXX,关闭时提示SSS,这样用户才能更明确。恩,考虑到了用户的体验,很好,我还是想说,you can you up...其实,浏览器在关闭和刷新时,本身已经区别对待了,提示是不同的,只不过我们自定义的部分并不能显示不同的文案而已;当然,也有一些hack的方法,但是很难适应多个浏览器,各浏览器内部对于关闭标签页和刷新的实现机制会有所不同;

你们每次登录进来,为什么要延时秒,才让坐席签入电话系统啊(我们做的是客服系统)?能不能把这个限制去掉啊,用户体验太不好了!我们也想去掉啊,但是电话系统频繁签入签出会有问题,用户刷新了浏览器,再次签入,如果相隔时间很短的话,电话系统会出现故障,为了避免这个问题,我们才加上了这个限制,但是回过头来思考,就可以进入我们今天讨论的主题了;

JS区分浏览器页面是刷新还是关闭(js区分浏览器页面大小)

区分刷新与关闭标签页

我们无法根据浏览器事件区分刷新还是关闭标签页,进而在相应动作触发前,执行不同的动作,但是对于上文中产品提出的第三点意见,其实还是可以考虑优化一下的,就是只有在刷新的时候延时秒,新登录或关闭标签页一段时间之后再进来时不延时;

要做到这点其实也很简单,使用浏览器的本地存储机制就可以实现,例如cookie,LocalStorage等,这里就不能使用SessionStorage了,因为本次回话结束后,该缓存就失效了;由于在cookie中存储会增加cookie的字节数,每次请求中相应的网络传输量会增加,因此,我们采用了LocalStorage;其操作很简单,我们使用的前端框架是AngularJS,具体如下:

上面代码主要作用是,进入系统后,会先去LocalStorage中获取上次退出时的时间,再获取当前时间,两个时间进行减法,如果值小于秒,我们就认为这是刷新,如果值大于秒,我们认为是关闭标签页或新登录,进而可以执行不同的方法,让客服有更好的体验,不用每次进入系统都要等待秒才能签入电话系统了,产品经理还是很重要的,吼吼,要不是他的疑问,可能我们也不会来优化这个地方了...当然,其实RD也要逐渐培养这种用户体验至上的思维,哪怕有一点可提升客服效率的地方,都值得我们花时间来优化;

下面把相关退出的代码也贴一下吧,前面忘说了,不管是刷新,还是关闭标签页,只要是页面销毁,我们都会去执行登出电话系统的操作,所以每次进来后需要重新签入;

我们可能还注意到一些问题,那就是刷新,关闭页面,前进后退,你需要跳出浏览器默认二次确认框,但是用户点击退出系统按钮,则必须弹出自己组件库中的Dialog了,还必须不能两个都弹出,具体代码如下:

以上所述是小编给大家介绍的JS区分浏览器页面是刷新还是关闭的全部内容,希望对大家有所帮助!

JS基于MSClass和setInterval实现ajax定时采集信息并滚动显示的方法 本文实例讲述了JS基于MSClass和setInterval实现ajax定时采集信息并滚动显示的方法。分享给大家供大家参考,具体如下:setTimeout用于延时器,只执行一次.setIn

ArtEditor富文本编辑器增加表单提交功能 摘要:artEditor.js是一款移动端的富文本编辑器,支持图片上传,后面会增加表情、小视频等功能。最近有朋友反馈artEditor是否支持表单提交,当然是支

JS中artdialog弹出框控件之提交表单思路详解 artDialog是一个基于javascript编写的对话框组件,它拥有精致的界面与友好的接口。前言:自适应内容artDialog的特殊UI框架能够适应内容变化,甚至连外部

标签: js区分浏览器页面大小

本文链接地址:https://www.jiuchutong.com/biancheng/373464.html 转载请保留说明!

上一篇:js组件SlotMachine实现图片切换效果制作抽奖系统(Js组件开发方式)

下一篇:JS基于MSClass和setInterval实现ajax定时采集信息并滚动显示的方法(js setmap)

  • 多交了企业所得税,下年度退税,需要更正撒意思
  • 工商年报资产状况纳税总额怎么计算?
  • 申报个人所得税在哪里报
  • 纳税资质是什么样子
  • 企业银行贷款报表要求
  • 安防监控工程会计分录
  • 研发费用加计扣除是什么意思啊
  • 个月所得税税率
  • 已经认证的发票可以作废吗
  • 信用减值损失借贷方表示什么意思
  • 房地产开发项目手册备案
  • 商场促销的税务处理怎么做?
  • 变更公司名称注册时间会变吗
  • 为什么有的公司没有一金
  • 购进的货物用于赠送
  • 征信证明怎么开啊
  • 税票认证节假日可以顺延吗?
  • 核定征收如何做账务处理
  • 苹果mac电脑下刻字怎么弄
  • 电信apn接入点设置+最快
  • 对方开红票需要寄给我吗
  • 公司租房可以抵扣个人所得税吗
  • win11文件类型怎么改
  • svchost程序错误怎么修复
  • RAVMOND.exe - RAVMOND是什么进程.有什么作用
  • iphone6p通讯录不见
  • 只有高新技术企业能享受研发加计扣除吗
  • macOS 10.13允许任何来源没有了怎么办?macOS 10.13允许任何来源没了开启步骤
  • 怎样做好固定资产管理工作
  • 公司福利放置零食文案
  • linux乱码怎么改
  • kzip_main.exe是什么
  • 增资后股权转让
  • php实现数组排序,所有奇数在前偶数在后怎么排序
  • vue生命周期分别做了什么
  • 三维点云识别
  • vue大型项目架构设计
  • 税控盘全额抵扣发票怎么勾选
  • element级联选择器动态获取数据
  • 多收了钱怎么记账
  • 筹建期购买办公用品
  • 什么叫现金流量表举例说明
  • 银行日记账怎么做账
  • 上级拨付的债券怎么做账
  • 个人劳务费怎么退税
  • 个贷系统平账专户a户为啥扣钱
  • 印花税凭证名称如何选择
  • 疫情期间减免的养老保险算工龄吗
  • 转让股权溢价账务处理会计分录
  • 付款方和发票抬头不一致会计处理
  • 单位租的个人房子需要采集房产税源吗
  • 卖固定资产如何做账
  • 未使用的固定资产计提折旧计入什么科目
  • 办公室租金发票可以扺增值税吗
  • 剩余股利政策发放股利后的年末未分配利润
  • Qq浏览器怎么切换成极速模式
  • 直接玩鬼泣4
  • xp系统的存储在哪里
  • xp任务栏靠右怎么调回来
  • 在centos7中,一般用( )命令来查看网络接口的状态
  • win10怎么添加游戏手柄
  • w10简易版
  • win7保存桌面不见了怎么办
  • Cocos2d-JS中JavaScript继承
  • opengles和vulkan哪个好
  • 不得不佩服自己的搞笑说说
  • scrollWidth,clientWidth与offsetWidth的区别
  • perl 教程
  • node.js怎么搭建服务器
  • 网站备份工具
  • 运行shell脚本命令 sh
  • 仿淘宝源码
  • shell 编程 怎么运行命令
  • 基于javascript的毕业设计选题
  • python3遍历字典
  • js中的类是什么
  • 云南省国家税务总局云南省电子税务局
  • 电子税务局查询一般纳税人资格
  • 国家税务系统
  • 增值税留抵退税政策
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设