var index_wait;
$.ajax({
type: "POST",
url: "/bcc/add",
data: data,
beforeSend: function(){
index_wait = layer.load(0, { //发送请求前调用load方法
shade: [0.5, '#fff'], //0.5透明度的白色背景
});
},
complete: function () { //load默认不会关闭,请求完成需要在complete回调中关闭
layer.close(index_wait);
},
success: function (res) {
layer.alert("成功!");
},
error: function () {
layer.alert("失败!");
}
});
jQuery是经常使用的一个开源js框架,其中的$.ajax请求中有一个beforeSend方法,用于在向服务器发送请求前执行一些动作。
ajax发起请求前,先是加载层 -> post请求 -> ajax请求执行完毕 - > 回调体中关闭加载层
我们有见到一种情况,很多网站在加载内容的过程中给出“数据加载中,请稍候”的提示,当内容被加载完毕后显示内容。可以设置默认文本显示为加载中的提示,当内容加载完毕时,我们可以通过ID选择器,将该标签中的文本替换成最终的内容。以此来取代beforeSend,效率更高。
什么时候用beforeSend,什么时候用文本替换,取决于ajax请求前后你所展示的DOM元素是否一致,如果你所展示的DOM元素在请求之前已经存在,那么通过上述文本替换的方式来处理会好些,如果除此以外你还需增加其他的需求,那么还是用beforeSend来处理吧。