页面跳转后查询状态保存问题的解决(较为笨拙的方法)
2018-02-23 17:35
726 查看
问题描述:页面查询时,在当前页面A输入查询条件之后,跳转至另一个页面B,当重新点击页面A时,输入的查询条件和查询结果均被初始化,需要重新输入查询条件,用户体验不好
项目框架:SpringMVC
项目结构:上部导航栏中每一个tab对应一个controller,当点击tab时,此时就会重新加载页面,页面被初始化,查询条件被清空
![](https://oscdn.geek-share.com/Uploads/Images/Content/202005/10/7e13ef557e2f3c59e8e80cf00eb65cb8)
思考过和使用过的解决办法:
1、将上述7个模块放在同一个页面中,点击对应模块出现对应页面
问题:此时需要将7个模块的代码放置在同一个controller中,代码冗余量增大
jsp页面代码量较大,对于代码的修改将是一件令人头痛的事情
由于框架的限制,点击分页时,将会出现一次点击控制多个页面的页码变化(体验不好)
2、多个iframe叠加,点击一个tab显示对应页面,置顶于其他页面
问题:此时页面与页面还是处于隔离状态,无法在一个页面中保存另一个页面的查询状态
3、Spring Cache缓存技术,将每个页面的查询状态保存在缓存中,当再到此页面时,查询是否存在查询状态,有则显示
问题:Spring缓存是方法级别的缓存,(一篇很好的缓存文章:注释驱动的 Spring cache 缓存介绍),文章中提到在方法上添加注解,可以将方法中的参数作为key,方法的返回结果作为value保存在缓存中;我的问题在于,我的方法返回结果是SpringMVC中的view路径,而我想要缓存的是从前台页面传回来的查询参数
![](https://oscdn.geek-share.com/Uploads/Images/Content/202005/10/a0d09be7f7348dabbc1283bc3d77ff0d)
4、页面缓存--H5 localStorage
问题:localStorage是缓存在本地,当浏览器关闭时同样存在,启动浏览器时,上次的查询状态同样会显示
我并不需要它存留很长时间,所以缓存在本地是不能满足要求的
小技巧:浏览器工具(F12)打开Application可以查看缓存
![](https://oscdn.geek-share.com/Uploads/Images/Content/202005/10/3d6b91569dc9910331d1274aaf484ab1)
5、页面缓存--Sessionstorage (最终解决方案采纳)
Sessionstorage 和 localstorage都是H5中针对cookie缓存大小不够出的解决方案,两者有些不同
可查看文章:http://blog.csdn.net/fcdd123/article/details/56286106
最终采纳这种解决方案,但也有一些不完美,当点击父tab时无法统一清除缓存(即清除7个模块的查询状态)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202005/10/2dc0a1f716e48de901312c8f3f525dde)
由于Sessionstorage 和 localstorage都只在当前页面有效,所以就采用了一种笨方法,使用HttpSession保存一个考勤审核链接带过来的参数index,再在七个controller中获取并携带到页面中,根据index是否等于某个值来判断是否清除当前页的查询状态
项目框架:SpringMVC
项目结构:上部导航栏中每一个tab对应一个controller,当点击tab时,此时就会重新加载页面,页面被初始化,查询条件被清空
思考过和使用过的解决办法:
1、将上述7个模块放在同一个页面中,点击对应模块出现对应页面
问题:此时需要将7个模块的代码放置在同一个controller中,代码冗余量增大
jsp页面代码量较大,对于代码的修改将是一件令人头痛的事情
由于框架的限制,点击分页时,将会出现一次点击控制多个页面的页码变化(体验不好)
2、多个iframe叠加,点击一个tab显示对应页面,置顶于其他页面
问题:此时页面与页面还是处于隔离状态,无法在一个页面中保存另一个页面的查询状态
3、Spring Cache缓存技术,将每个页面的查询状态保存在缓存中,当再到此页面时,查询是否存在查询状态,有则显示
问题:Spring缓存是方法级别的缓存,(一篇很好的缓存文章:注释驱动的 Spring cache 缓存介绍),文章中提到在方法上添加注解,可以将方法中的参数作为key,方法的返回结果作为value保存在缓存中;我的问题在于,我的方法返回结果是SpringMVC中的view路径,而我想要缓存的是从前台页面传回来的查询参数
4、页面缓存--H5 localStorage
问题:localStorage是缓存在本地,当浏览器关闭时同样存在,启动浏览器时,上次的查询状态同样会显示
我并不需要它存留很长时间,所以缓存在本地是不能满足要求的
小技巧:浏览器工具(F12)打开Application可以查看缓存
5、页面缓存--Sessionstorage (最终解决方案采纳)
Sessionstorage 和 localstorage都是H5中针对cookie缓存大小不够出的解决方案,两者有些不同
可查看文章:http://blog.csdn.net/fcdd123/article/details/56286106
最终采纳这种解决方案,但也有一些不完美,当点击父tab时无法统一清除缓存(即清除7个模块的查询状态)
由于Sessionstorage 和 localstorage都只在当前页面有效,所以就采用了一种笨方法,使用HttpSession保存一个考勤审核链接带过来的参数index,再在七个controller中获取并携带到页面中,根据index是否等于某个值来判断是否清除当前页的查询状态
相关文章推荐
- python抓取并保存html页面时乱码问题的解决方法
- php页面跳转session cookie丢失导致不能登录等问题的解决方法
- 【开源自动化测试疑难FAQ】【WebDriver】封装GET方法来解决页面跳转不稳定的问题
- python抓取并保存html页面时乱码问题的解决方法
- Struts2.0页面跳转css无效问题的解决方法
- 页面跳转问题,多次 push 到新的页面的问题的解决方法
- php页面跳转session cookie丢失,不能登录等问题解决方法
- 转:【WebDriver】封装GET方法来解决页面跳转不稳定的问题
- WebDriver封装GET方法来解决页面跳转不稳定的问题
- 微信小程序出现wx.navigateTo页面不跳转问题的解决方法
- js不能跳转到上一页面的问题解决方法
- Servlet 使用getRequestDispatcher进行请求转发页面未跳转 后台也未报错的问题的解决方法
- Liferay中actionURL能够执行后台方法 ,但是页面不跳转问题解决方案
- WebDriver封装GET方法来解决页面跳转不稳定的问题
- 解决href使用onclick方法时点击该链接的时候不会跳转页面.但是滚动条会往上滚的问题
- php页面跳转session cookie丢失导致不能登录等问题的解决方法
- Struts2.0页面跳转css无效问题的解决方法
- js不能跳转到上一页面的问题解决方法
- bootstrap模态框跳转到当前模板页面 框消失了而背景存在问题的解决方法
- Liferay中actionURL能够执行后台方法 ,但是页面不跳转问题解决方案