回调函数
回调函数分为同步回调函数和异步回调函数。
同步回调函数
回调函数通常就是当父函数执行完后,再执行通过传参进来的函数,当然也可以不传参,直接在父函数内部调用回调函数
注:立即执行回调,执行完回调代码才会继续往下执行
function a(callback) {
alert("我是parent函数a!");
alert("调用回调函数");
callback();
}
function b() {
alert("我是回调函数b");
}
function c() {
alert("我是回调函数c");
}
function test() {
a(b);
a(c);
}
以上这种方式是讲回调函数写在父函数外面,以参数的形式传递进入父函数,这样就可以比较灵活,a函数的回调函数可以是b函数,也可以是c函数
function a() {
alert("我是parent函数a!");
alert("调用回调函数");
b();
}
function b() {
alert("我是回调函数b");
}
a();
以上就是直接把回调函数写在父函数内部,当然这样的话就失去了灵活性,回调函数就只能是b函数
异步回调函数
如ajax()的异步回调,当发送请求后服务器响应需要一定的时间,异步回调可以是代码继续执行,当服务器请求成功,就会回过来调用此函数,这样就可以提高浏览器的加载效率,ajax因此也成为了浏览器优化的一大工具
$.ajax({
type: "GET",
data: {},
url: "combobox_data.json",
success: function () {
console.log('我是请求成功后执行的回调函数'); //打印 "我是请求成功后执行的回调函数"
},
error: function () {
console.log('我是请求失败后执行的回调函数'); //如果失败,打印 "我是请求失败后执行的回调函数"
}
})
以上是ajax中的回调函数,当请求成功后,函数就会执行,当然请求失败就会执行error中的回调函数
详情可见ajax异步回调详情