jQuery异步ajax
同步:
举个例子,你给餐厅打电话,要查某个消费记录,这时候餐厅去查消费记录,你在电话那头等着,不能做其他事情,只有餐厅查到消费记录告诉你才能做其他事情。这个就是同步。
异步:
异步就是这样的:你还是去给餐厅打电话,还是要查某个消费记录,这时候餐厅还是去查消费记录,但是餐厅告诉你,你不用等,我们查到就会立马告诉你的,在我们查到之前你可以去做其他事情了。
JQ代码的时候遇到ajax加载数据都需要考虑代码运行顺序问题。最近的项目用了到ajax同步。这个同步的意思是当JS代码加载到当前ajax的时候会把页面里所有的代码停止加载,页面出去假死状态,当这个jajx执行完毕后才会继续运行其他代码页面假死状态解除。
而异步则这个ajax代码运行中的时候其他代码一样可以运行。
JQ种的$.ajax({settings})方法:
type:类型,“POST"或"GET”,默认值为"GET"
url:发送请求的地址
async:设置异步,(默认: true) 默认设置下,所有请求均为异步请求。如果需要发送同步请求,
请将此选项设置为 false。注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。
data:是一个对象,连同请求发送到服务器的数据
dataType:预期服务器返回的数据类型,如果不指定,JQ将自动根据http包MIME信息来智能判断,
一般采用json格式,可以设置为"json"。
success:是一个方法,请求成功后的回调函数,传入返回后的数据,以及包含成功代码的字符串
error:是一个方法,请求失败是调用此函数,传入XMLHttpRequest对象
jQuery中ajax方法从服务器上获取数据
function jqGetData() {
$.ajax({
type: “get”, post和get都可以获取
url: “/jQueryAjax/getPersonInfor”,
//async:true,值为true则可以省略该行代码
dataType: “json”, json是用来存储数据
success: function (data) {
console.log(data);//js对象
//下面三行是 表单提交 框
$("#txtName").val(data.name);
$("#cboSex").val(data.sex);
$("#txtAddress").val(data.address);
}
})
}
点击获取 就可以获取 三行 信息
jQuery中ajax方法将表单数据提交给服务器
function jqSubmitForm() {
var name = $("#txtName").val();
var sex = $("#cboSex").val();
var address = $("#txtAddress").val();
if (name == “” || sex == 0 || address == “”) {
alert(“请检查数据是否完成”);
return false;
}
var frmdata = “name=” + name + “&sex=” + sex + “&address=” + address;
var serData = $("#myform").serialize();
var arrData = $("#myform").serializeArray();
console.log(serData);
console.log(arrData);
$.ajax({
type: “post”,
url: “/jQueryAjax/getDataByFormCollection”,
data: arrData, (data属性名称 arrData变量名)
success: function (msg) {
alert(msg);
},
error: function (xmlhttp) {
console.log(xmlhttp); (输出 如果请求错了 也会在控制台打印 值XMLHttpRequest对象)
}
})
}