• ajax请求成功后js刷新当前页,当前页是post查询结果(用post请求进行搜索筛选)的问题


    下面的一个ajax操作,原先操作成功会刷新当前页,保证用户看到的数据是最新的,一般情况不会出现问题。
    $.ajax({ url: url
    + "/addTeacherAuth", //请求的url地址 dataType: "json", //返回格式为json async: true, //请求是否异步,默认为异步,这也是ajax重要特性 data: {tid: tid, authValue: authValue}, //参数值 type: "GET", //请求方式 success: function (data, textStatus) { if (data.status == 1) { swal({ title: "", text: "添加教师权限成功", type: "success", showConfirmButton: "true", confirmButtonText: "关闭", animation: "slide-from-top" }, function () { // window.location.reload(); //刷新当前页面 location.href = url + "/teacherList"; }); } else { swal({ title: "", text: data.msg, type: "error", showConfirmButton: "true", confirmButtonText: "关闭", animation: "slide-from-top" }); } }, error: function (XMLHttpRequest, textStatus, errorThrown) { console.log('请求发生错误:' + textStatus); } });
    但是当当前页面是post查询结果页面的话,如下图,此时执行刷新当前页面,浏览器就会发起窗口(360浏览器),询问用户是否再次执行post查询,
    如果用户不小心点击取消或者x,ajax操作后就不能刷新当前页,不能保证用户的数据是最新的。

    个人解决办法是重定向到一个新的页面(该列表的没有查询条件下的初试状态,是所有教师数据的列表页面),这样也能保证数据是最新的。(能力有限)

    见上面代码的location.href = url + "/teacherList";
    当然,你也可以捕获查询条件,ajax成功后,再发起一个ajax把查询的结果重新异步刷新,这样也是可以达到效果的。
  • 相关阅读:
    设计模式命令模式(Command)
    设计模式责任链模式(COR)
    设计模式备忘录模式(Memento)
    设计模式中介者模式(Mediator)
    设计模式策略模式(Strategy)
    设计模式解释器模式(Interpreter)
    设计模式迭代器模式(Iterator)
    设计模式状态模式(State)
    Ext终于开始收费了
    设计模式观察者模式(Observer)
  • 原文地址:https://www.cnblogs.com/alanleung/p/6768301.html
Copyright © 2020-2023  润新知