一开始,想到的是把每次请求视频列表的筛选条件都存到session中,然后当每次加载页面时,在请求的接口中,去session中看看有没有存储相关筛选条件,有则取出使用,无则把新的筛选条件存进session,继续执行筛选操作。
思路没毛病,但真正执行时却发现,当点击返回按钮返回页面时,并没有去请求接口,这样上述的操作就无法执行到了。第一反应就是应该页面上有啥地方没写好,由于没有前端开发人员,只能自己琢磨,各种加onload,加setTimeout,$(function() {***}),浏览器后退事件监听加history.go(-1)之类的都试了一遍,都不行,上百度找了一通,很多也不适用,最后终于看到一个大神提到的设置页面为不缓存,一试,果然OK,所加代码如下:
前端:<head>
<pre>
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
<META HTTP-EQUIV="expires" CONTENT="0">
</pre>
//据大神说,如果不加下面这块script,当使用浏览器上默认的返回时并不能让浏览器刷新,还需要使用js控制
//由于window.name在浏览器刷新后会仍然保存,所以可以用window.name来判断页面是否已经刷新过
<script type="text/javascript">
if(window.name!="hasLoad"){
location.reload();
window.name = "hasLoad";
}else{
window.name="";
}
</script>
</head>
后端:
if (request.getProtocol().compareTo("HTTP/1.0") == 0){
response.setHeader("Pragma","no-cache");
}else if (request.getProtocol().compareTo("HTTP/1.1") == 0){
response.setHeader("Cache-Control","no-cache");
}
这里的方法只适用于java+html,还有其他的包括PHP、JSP等,
详看这条博客:http://blog.csdn.net/panruifang/article/details/46328863
权当一次知识记录,为了下次看能知道是遇到什么场景,写得有点啰嗦了。不过 还是要感谢下大神@Amy潘潘