毕设IDEA2019之ssm你的系统真的退出了吗?(适合小萌新)

刚开始学web开发的时候我们是怎么退出的?设置一个退出按钮,点击后跳转回首页或者其他指定页面,看起来好像是退出了,但是浏览器有一个键,是的没错,就是右上角的后退键,一键让我们的退出按钮形同虚设。那怎么避免呢?让我们一起来了解一下。
前置条件:耐性100%;IDEA2019;HTML5

常见的解决方法

  1. 禁用浏览器的后退键(现在好像不行了)
  2. 利用session:操作系统的时候判断session是否存在,退出系统的时候删除session,那么即使回退了也无法操作系统;(需要对session比较熟悉)
  3. 改变当前的地址:使用HTML5引入的 history.pushState() 方法修改地址,当回退的时候浏览器访问的是你修改后的地址(本文主要介绍)

改变地址

先来了解一下pushState()方法:

  • 使浏览器不向服务端请求数据,直接改变url地址,向历史记录栈中压入一条新的记录;
  • 参数:

state
状态对象是一个JavaScript对象,它与通过创建的新历史记录条目相关联 pushState()。每当用户导航到新状态时,popstate就会触发一个事件,并且state 该事件的属性包含历史记录条目的状态对象的副本。状态对象可以是任何可以序列化的对象。由于Firefox将状态对象保存到用户的磁盘上,以便用户重新启动浏览器后可以将其还原,因此我们对状态对象的序列化表示施加了640k个字符的大小限制。如果将序列化表示形式大于此值的状态对象传递给pushState(),则该方法将引发异常。如果您需要更多空间,建议您使用sessionStorage和/或localStorage。
title
目前大多数浏览器都忽略此参数,尽管将来可能会使用它。在此处传递空字符串应该可以防止将来对方法的更改。或者,您可以为要移动的州传递简短的标题。
url
新历史记录条目的URL由此参数给出。请注意,浏览器不会在调用之后尝试加载该URLpushState(),但可能会稍后尝试加载该URL,例如在用户重新启动浏览器之后。新的URL不必是绝对的。如果是相对的,则相对于当前URL进行解析。新网址必须与当前网址具有相同的来源;否则,pushState() 将引发异常。如果未指定此参数,则将其设置为文档的当前URL。

方法实现

<script>
	$(function(){
            $("#exitbtn").click(function () {
                        pushHistory()
                        window.location.href ='/FD_SSM_war/';
            })
	})
     function pushHistory() {
            var state = {
                title: "title",
                url: "../"
            };
            window.history.pushState(state, "title", "../");
        }
 </script>
 <body>
	...
	<button id="exitbtn">退出</button>
</body>

结尾

简单介绍一下如何避免退出后通过后退键回退系统的尴尬,同时也可以去了解一下windows对象的一些时间监听,例如onload、onunload、onbeforeload等等。

感觉有用就点个赞呗~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值