加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ajax异步问题导致的刷新页面数据不更新

发布时间:2020-12-16 01:40:36 所属栏目:百科 来源:网络整理
导读:ajax的async默认的设置值为true,这种情况为异步方式,就是说当ajax发送请求后,在等待server端返回的这个过程中,前台会继续 执行ajax块后面的脚本,直到server端返回正确的结果才会去执行success,也就是说这时候执行的是两个线程。 ajax用它就是因为它的

ajax的async默认的设置值为true,这种情况为异步方式,就是说当ajax发送请求后,在等待server端返回的这个过程中,前台会继续 执行ajax块后面的脚本,直到server端返回正确的结果才会去执行success,也就是说这时候执行的是两个线程。

ajax用它就是因为它的异步性,平时也都是默认值,今天在项目中遇到这样一个问题,用ajax更新数据后,立马刷新页面:

$.ajax({
                    type:'POST',url:'changeVoteByid.action',data:{'whos[]':whos},dataType:'json',success:function(msg){
                        alert(msg);
                    },}); 
            window.location.reload(true);

执行这段代码的话,数据库中数据确实更新了,但是window.location.reload(true);一执行即刷新页面,数据并没有变!!!
调试什么的试了好久,发现不是java代码的问题!~(~ ̄▽ ̄)~

此时想到ajax还有一个error参数用来处理错误:

(默认: 自动判断 (xml 或 html)) 请求失败时将调用此方法。这个方法有三个参数:XMLHttpRequest
对象,错误信息,(可能)捕获的错误对象。 function (XMLHttpRequest,textStatus,
errorThrown) { // 通常情况下textStatus和errorThown只有其中一个有值 this; // the
options for this ajax request }

于是ajax中加上这几句:

error: function(XMLHttpRequest,errorThrown) {
                        alert(XMLHttpRequest.status);
                        alert(XMLHttpRequest.readyState);
                        alert(textStatus);
                    }

此时再执行XMLHttpRequest.status一直等0,在网上搜了搜:
[AJAX问题之XMLHttpRequest status = 0]这篇文章介绍的不错!(http://www.52php.cn/article/p-qxfhlfkw-sc.html)

但是发现我的错也不是因为这里的原因, ̄△ ̄
但能锁定就是ajax这里的问题了,

后来在chrome调试时,为了调试方便就把

window.location.reload(true);

给注释掉了,卧槽,注释掉后一切正常!!!突然间恍然大悟!!!tm异步问题有没有,这里应该是同步的!!!
要等ajax执行完,再去刷新!
加上:

async: false,

好了。。。( ⊙ _ ⊙ )

jquery的ajax同步和异步区别

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读