工作中一些比较奇怪的产品需求笔记

简介: 1.要求登录以后点击浏览器返回以后再点返回需要重新登录;这个本来是浏览器默认的一些缓存,当时也是在网上各种百度  解决问题思路 :当时经过反复的测试,发现每次浏览器返回之后会重新加载一次页面js;但是不会给服务器发请求;也就是从后台没办法控制‘     然后给windos设置了一个全局变量;每次...

1.要求登录以后点击浏览器返回以后再点返回需要重新登录;这个本来是浏览器默认的一些缓存,当时也是在网上各种百度

  解决问题思路 :当时经过反复的测试,发现每次浏览器返回之后会重新加载一次页面js;但是不会给服务器发请求;也就是从后台没办法控制‘

     然后给windos设置了一个全局变量;每次加载的时候判断这个全局变量,如果不满足这个条件则直接让系统退出登录;

//页面后退后直接退出事件
if(window.name == "" ){

  window.name = "bencalie";
  }else{

  window.location.href="logout";
    window.name = "";
  }

  问题解决了。但是又出现了一下心得问题。欣慰每次加载都会判断这个变量,。导致浏览器刷新也会退出系统;

然后想方设法的去捕捉浏览器刷新的事件。又是各种百度。结果并没有什么用;把f5这个按键刷新倒是屏蔽了。可是浏览器点击刷新根本捕捉不完整;

为了解决这个问题也是心累了,左想右想也没解决;然后从头开始整理

  浏览器返回和前进不会请求服务器,但是会重新加载js;但是浏览器刷新会发起服务器请求;

  然后就看了一下浏览器发请求到登录成功的时间。再看了一下浏览器返回再前进的时间;然后就设了一个时间戳;判断这个时间戳的大小,发现在我这个项目是可行的

  步骤  1.发起请求的时候传一个时间戳到前端页面保存;这样只有刷新页面的时候才会更新时间戳;浏览器返回前进的时候并不会更新时间戳;在js加载的时候获取当前时间;

一般服务器更新了这个时间戳的话,。他们差值就会很小;如果没有更新,。但是又要重新加载页面;那基本上就可以判断为是浏览器的前进和后退了

问题解决

 

      var timestamp = (new Date()).getTime();//获取当前时间。和浏览器传过来的时间,如果差值大于3秒,则直接退出系统
            if(timestamp-$("#data").val()>=3000){
                  window.location.href="logout"; 
                }
            

 

目录
相关文章
|
敏捷开发 前端开发 开发者
想要成为软件开发中的王者,需要明白的 21 条准则
想要成为软件开发中的王者,需要明白的 21 条准则
|
运维 程序员
程序员成长第九篇:真实项目中的注意事项
程序员成长第九篇:真实项目中的注意事项
67 0
|
前端开发 测试技术 程序员
程序员成长第八篇:做好测试工作
程序员成长第八篇:做好测试工作
216 0
|
传感器
时隔这么长时间,我把常用的功能整理好了,再来感受VueUse工具库的优雅吧~
时隔这么长时间,我把常用的功能整理好了,再来感受VueUse工具库的优雅吧~
时隔这么长时间,我把常用的功能整理好了,再来感受VueUse工具库的优雅吧~
|
开发框架 Java 测试技术
【测试基础】五、这样提bug单,开发小哥还会怼你么?
【测试基础】五、这样提bug单,开发小哥还会怼你么?
【测试基础】五、这样提bug单,开发小哥还会怼你么?
|
SQL 自然语言处理 关系型数据库
数据库知识点太多?作为测试掌握这些就够了【精简重点版 >直击面试>建议收藏】
数据库知识点太多?作为测试掌握这些就够了【精简重点版 >直击面试>建议收藏】
127 0
数据库知识点太多?作为测试掌握这些就够了【精简重点版 >直击面试>建议收藏】
|
存储 算法 安全
我用一个小小的开放设计题,干掉了40%的面试候选人
去年团队招聘需求比较大,本人参与了近百次的面试工作。今天来跟大家聊聊,面试候选人过程中,一个常见的开放类设计题目的解题思路,以及候选人的理解设计误区分析。
我用一个小小的开放设计题,干掉了40%的面试候选人
|
存储 前端开发 JavaScript
#yyds干货盘点# 前端一文带你理解如何解决工作中的需求
#yyds干货盘点# 前端一文带你理解如何解决工作中的需求
139 0
#yyds干货盘点# 前端一文带你理解如何解决工作中的需求