完整版AJAX(网络不好时状况处理)

之前的AJAX在应用中有一个非常重要的问题,那就是如果用户网络不好的情况下,虽然没有刷新页面,会出现长时间数据展示等待的情况(点击按钮等后出现长时间数据没有展示的情况).这个时候需要用到AJAX的beforeSend事件和complete事件,目的是为了告诉用户,不是页面卡住了,而是数据正在加载,让耐心用户等待而不是乱点击操作出现不必要的问题.

    $("#XG").live("click", function () {
        var a = $(this).attr("class");
        $.ajax({
            url: "updata1.ashx",
            data: { "ids": a },
            type: "post",
            dataType: "json",
            success: function (m) {
                $("#tids").val(m[0].ids);
                $("#tname").val(m[0].name);
                if (m[0].sex == 'True')
                    $("#tsex").children("input:eq(0)").get(0).checked = true;
                else
                    $("#tsex").children("input:eq(1)").get(0).checked = true;
                $("#tbirthday").val(m[0].birthday);
                $("#DropDownList1").val(m[0].nation);
                $("#DropDownList2").val(m[0].class);
                $("#tscore").val(m[0].score);
            },
            error: function () { alert("数据错误!"); },
            beforeSend: function () { $("#waiting").css("display", "block"); },//在接收到数据之前会执行
            complete: function () {   //接收到数据后会执行这个
                $("#waiting").css("display", "none");
                $("#tc").animate({ top: 100 }, 500);
                $("#tc-zz").css("display", "block");
            }
        });
    });

这样这个点击事件在没有返回数据之前会一直出现一个等待界面,在接收到数据后等待界面消失,执行后面的操作

 

posted on 2017-06-07 09:41  张鑫4477  阅读(380)  评论(0编辑  收藏  举报