项目中,请求开始前加载loading遮罩层,请求结束关闭遮罩,一般都会加在全局中,但有个别请求不需要加全局loading 的话,这时候就需要对这些请求进行配置
全局加loading:
var loadingIndex = 0; function PageLoading() { loadingIndex = layer.load(0, { shade: [0.5, '#000'] }) } function RemoveLoading() { layer.close(loadingIndex); } // 正确写法,这样写,后面设置个别的时候就可以生效 $(document).bind("ajaxSend", function () { PageLoading(); }).bind("ajaxComplete", function () { RemoveLoading(); }); // 错误写法,如果直接这样设置了,再后面去设置个别的时候会不生效 //$.ajaxSetup({ // global:true, // beforeSend: function (e, o) { // //ajax请求之前 // PageLoading(); // }, // complete: function () { // //ajax请求完成,不管成功失败 // RemoveLoading(); // }, // error: function (XMLHttpRequest, textStatus) { // //ajax请求失败 // RemoveLoading(); // } //});
在不需要加载loading的ajax中设置
$.ajaxSetup({ global: false });
// 或
$.ajax({
url:url,
method:'get',
global:false,
...
})
设置这个之后,就会在当前请求时不加载全局的loading