完整版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");
}
});
});
这样这个点击事件在没有返回数据之前会一直出现一个等待界面,在接收到数据后等待界面消失,执行后面的操作
