注:ajax通過async參數決定是異步還是同步,false同步,true異步;
異步執行順序是先執行后續動作,再執行success里代碼;
同步是先執行success里代碼,再執行后續代碼;
驗證:同步時數據量大是否會卡頓?例如從后台搜索大量數據時,頁面是否卡死?
1、(異步)方法調用,后續代碼不需要等待它的執行結果
后台<C#>:
using System.Web.Script.Services;
[WebMethod]
public static string GetStr(string str1, string str2)
{
return str1 + str2;
}
前台<JQuery>:
function Test(strMsg1,strMsg2)
{
$.ajax({
type: "Post",
url: "Demo.aspx/GetStr",
async: true,
//方法傳參的寫法一定要對,與后台一致,區分大小寫,不能為數組等,str1為形參的名字,str2為第二個形參的名字
data: "{'str1':'"+strMsg1+"','str2':'"+strMsg2+"'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data) {
//返回的數據用data.d獲取內容
alert(data.d);
},
error: function(err) {
alert(err);
}
});
//隱藏加載動畫
$("#pageloading").hide();
}
2、(同步)方法調用,可用於需要得到返回值是執行后續代碼的前提
后台<C#>:
using System.Web.Script.Services;
[WebMethod]
public static string GetStr(string str1, string str2)
{
return str1 + str2;
}
前台<JQuery>:
function Test(strMsg1,strMsg2)
{
var str = “”;
$.ajax({
type: "Post",
url: "Demo.aspx/GetStr",
async: false,
//方法傳參的寫法一定要對,與后台一致,區分大小寫,不能為數組等,str1為形參的名字,str2為第二個形參的名字
data: "{'str1':'"+strMsg1+"','str2':'"+strMsg2+"'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data) {
//返回的數據用data.d獲取內容
str = data.d;
},
error: function(err) {
alert(err);
}
});
return str;