Ajax的beforeSend 和 complete

前端的童鞋们:在项目中都会遇到向后台请求数据:

通常会采用ajax请求,在请求的过程中有时返回的数据过多或者用户网络慢的原因,导致页面一开始会有空白页面,这样给用户带来的体验不好

$.ajax请求中有一个beforeSend、complete方法,

1.提高用户体验

$.ajax({
    url: url,
    type: "get",
    data:data
    async:true,
       //数据加载之前显示loading
    beforeSend: function() {
        //do something 
    },
    success: function(res) {
        //do something 
    },
       //数据加载完成之后loading隐藏
    complete:function(){
        //do something 
    }
})

2 .防止数据重复

当用户提交表单时,虽然点了提交按钮,但是因为网络慢的原因,会出现暂时没有返回数据,用户会认为没有点击成功,

就会造成数据库中产生多条重复的数据---脏数据,所以我们可以在beforeSend中添加禁用提交按钮的功能,在complete后在恢复之,

例如:

/ 提交表单数据到后台处理
$.ajax({
    type: "get",
    data: data,
    url: url,
    beforeSend: function () {
        // 禁用按钮防止重复提交
        $("button").attr({ disabled: "disabled" });
    },
    success: function (data) {
        if (data.code== 0) {
            //清空输入框
        }
    },
    complete: function () {
        $("button").removeAttr("disabled");
    },
});

 

目前只采用了这两种方式:若有遗落,欢迎补充

猜你喜欢

转载自www.cnblogs.com/Chestnut-LYN/p/10577394.html