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

Ajax中的2个容易忽略的地方

发布时间:2020-12-16 02:09:56 所属栏目:百科 来源:网络整理
导读:Ajax在WEB程序中是一件利器,无论api的调用,还是与后台数据的交互等都需要用到,这儿记录下在使用过程中发现2个容易忽略而导致错误的地方,这两个地方也是一些javascript的基础知识,也可以当作重温一下javascript的基

Ajax在WEB程序中是一件利器,无论api的调用,还是与后台数据的交互等都需要用到,这儿记录下在使用过程中发现2个容易忽略而导致错误的地方,这两个地方也是一些javascript的基础知识,也可以当作重温一下javascript的基础。


1. 异步获取数据

异步是指,在ajax发送请求后,会继续执行下面的方法,直到请求返回时,再回过头来执行ajax中的回调方法。这也是ajax异步的强大之处,不会因为请求而影响程序的执行时间。但如果你下面执行的代码中,有需要请求返回的数据,那就会发生错误了,因为请求还没回来,你的代码就执行了。如下:

$.ajax({

url:'/test/test.php',dataType:'json',type:'get',success:function(data){
console.log(1);
}
});
console.log(2);
//控制台结果:
//2
//1

你会发现,控制台先出现的数字是2,之后才是1。如果后面有需要用到请求返回数据的代码,不妨写在回调方法success的function里面。


2.ajax中的this变量

在一个对象中,this变量代表的是自身这个对象,而在ajax中,this变量所代表的是传入ajax中的对象本身,如下:

vartestObj={

type:'thisistestObj.type',test:function(){

console.log('this.type:'+this.type);
var_this=this;

$.ajax({

url:'/test/test.php',success:function(data){
console.log('this.typeinajax:'+this.type);
console.log('_this.type:'+_this.type);
}
});
}
};
testObj.test();
//控制台出现的数据是:
//this.type:thisistestObj.type
//this.typeinajax:get
//_this.type:thisistestObj.type

所以说,要在ajax中使用this指向ajax以外的对象,是会导致一些错误的,所以先在ajax外面将this赋值给别的变量就可以了。如上面的_this。

(编辑:李大同)

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

    推荐文章
      热点阅读