js返回上一页并刷新

参考:js控制,返回上一页后强制刷新

在新页面中写:

history.go(-1);

返回上一页。

在上一页的代码中写:

 $(function () {
        if(window.name != "page1"){
            location.reload();
            window.name = "page1";
        }
        else{
            window.name = "";
        }
  }

在回到该页面时,强制刷新一次。

2017-06-15补充:
上述方法虽然说实现了返回后强制刷新原页面的效果,但是在实际使用的时候还是存在比较大的问题。
假设我们现在有一个页面a.jsp,默认展示所有学生列表,在当前页面中,输入查询条件,如班级,查到某班级的学生列表。然后对列表中的某一行,如学生甲,进行操作,点修改,跳转到页面b.jsp。修改完成并保存后,通过页面b的回调函数,显示一个弹窗,展示保存结果。关闭弹窗后,自动返回原页面,也就a.jsp。现在希望a.jsp页面仍保留原有的查询条件,只展示某班级的学生列表,但是列表已经被刷新了,显示的是最新的学生信息。
那么问题来了,怎么做到返回上一页并刷新上一页,此外,还保留上一页原有的信息呢?
原先采用的方法如上。方法存在的问题:第一,直接进入页面a时,页面会刷新两次,体验比较糟糕。第二,虽然说从b页面跳转回来的时候确实实现了自动刷新的效果,但是,刷新时没有保留住原有的查询条件参数。
后来,就采用了一个本方法来实现想要的效果:
原先,跳转到修改页面的方法为:

window.location.href='queryKeyWord.htm?id='+id;

现在在a.jsp中,新增一个隐藏的form

 <%-- 方法共用表单--%>
                <form class="form-inline" action="toUpdateStu.htm" id="updateForm">
                    <%-学生id,修改时用-%>
                    <input type="hidden" name="id" id="q_id"/>
                    <%-查询条件-%>
                    <input type="hidden" name="pageId" value="${searchMap.pageId}">
                    <input type="hidden" name="className" value="${searchMap.stu.className}"/>
                    <input type="hidden" name="name" value="${searchMap.stu.name}"/>
                </form>

在查询并进入到a页面时,就将查询条件同时写一份到隐藏域中,同时,将跳转到b页面的方法改写为:

    $("#q_id").val(id);
    $("#queryForm").submit();

java的跳转方法如下:

  public ModelAndView toUpdateStu(Long id,PageBean pageBean,HttpServletRequest request,String pageId, String className, String name) {
        // 设置PageBean的url为findAllGoods.htm
        pageBean.setUrl("keyWordManage.htm");
        // 结果集
        Map<String, Object> resultMap = new HashMap<String, Object>();
        if(id!=0L) {
            Student stu=  stuService.selectByPrimaryKey(id);
            resultMap.put("stu",stu);

            resultMap.put("pageId",pageId);
            resultMap.put("className",className);
            resultMap.put("name",name);
        }

        resultMap.put("pageBean", pageBean);

        return new ModelAndView("jsp/b").addAllObjects(resultMap);
    }

将查询条件带到b页面去,
同样,在b页面中,添加隐藏表单

 <%--跳转回审核页面保存的参数--%>
                <form class="return_form" action="stuList.htm" method="post">

                    <input type="hidden" name="pageId" value="${pageId}">
                    <input type="hidden" name="className" value="${className}"/>
                    <input type="hidden" name="name" value="${name}"/>

                </form>

关闭回调的弹窗后,调用方法

$('.return_form').submit();

回到a页面,即可实现返回并刷新,且保留原有查询参数的效果。

注:带参数的方法应该是不用这么繁琐的。我会把语句写的这么啰嗦,主要是项目是要求在谷歌浏览器上运行,我测试的时候没有开隐身模式,缓存清不干净,很多在js文件中写的改动在调试过程中都没有生效。一开始没有发现这个问题,就越改越繁琐了。

诸位要是有更好的方法,欢迎指教~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值