前端实现了局部刷新,但浏览器回退后总是会回到第一页,也就是欢迎页面,并没有回到上一个页面?

问题描述

前端实现了局部刷新,但浏览器点击回退后总是会回到第一页,也就是欢迎页面,并没有回到上一个页面?

相关代码

首页代码:
image.png

然后在 .jsp 中发起 Ajax 请求。响应数据。

image.png
image.png

如图:点击学生管理,然后出现
image.png
再点击查看课程学生,出现
image.png
然后就是我所纠结的问题所在了!如果再点击删除等链接。我想让删除之后回到学生列表展示页面。但是一直无法做到。

另外就是在这个页面,如果点击浏览器的回退的话,也无法回到上一个页面。

前端的所有代码在:https://github.com/liushengxi13689209566/Web

后端:SSM框架

阅读 4.8k
2 个回答

ajax 请求不会生成历史记录,不然一个页面成百上千的请求能把用户逼疯。
可以使用 JS 操纵 window.history,来达到前进后退的效果,比如执行 history.pushState('data', 'title', 'url') 之后,再按返回键不会返回上一个页面。
但是页面内容也不会完全回退到之前的状态,所以需要每次pushState之前把页面内容留一个快照,或者留增量内容的快照,然后监听用户的返回事件,在用户返回的时候使用相应的快照恢复页面状态。不得不说这样的实现并不简单,搞不好就会出现一堆遗留的事件监听,造成页面崩溃。
不知道有没有现成的 jQuery 方案,但是如果你改用 ReactAngular或者 Vue 的话,这个问题就能迎刃而解了,官方或社区会提供良好的 router 支持。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题