Juery返回Json數據格式,webForm中使用

 此篇的詳細篇html

//webForm中使用異步就會用到通常處理程序,前臺調用通常處理程序這個頁面去執行裏面的方法java

using System.Web.Script.Serialization;  web

Newtonsoft.Json.dll 須要本身下載這個dll,下面的Newtonsoft.Json.JsonConvert.SerializeObject才能使用,省市區三級聯動裏面有這個dll.ajax

//後臺   通常處理程序json

JavaScriptSerializer java = new JavaScriptSerializer();  //序列化    主要返回字符串,整型等等
context.Response.ContentType = "text/plain";
BLL.Boda_Department DepartmentBLL = new BLL.Boda_Department();
DataSet ds = DepartmentBLL.GetList(" BodiesID='" + UserModel.BodiesID + "'");
java.MaxJsonLength = int.MaxValue;
context.Response.Write(Newtonsoft.Json.JsonConvert.SerializeObject(ds.Tables[0])); //返回一張省的表格 

//前臺瀏覽器

 $.ajax({
                type: "Post",  
                url: "CommunityHandler.ashx",   //訪問處理程序
                dataType: "json",   //類型
                data: "",         //參數 async: false,        //false爲同步,ture爲異步(默認爲true) 
                success: function (data) {     //data就是序列化的表格 var GetData = eval(data);    //轉個型 GetData就是咱們的表
                    $.each(GetData, function (i, item) {    
                        $("#Sheng" + Id + "").append("<option value=" + item.dm + ">" + item.ct + "</option>"); //dm,ct都是表裏面的字段
                    });   //GetData是須要循環的集合, i個數,item每一項
                }
            });

同步異步區別服務器

async. 默認是true,即爲異步方式,$.ajax執行後,會繼續執行ajax後面的腳本,直到服務器端返回數據後,觸發$.ajax裏的success方法,這時候執行的是兩個線程。若要將其設置爲false
,則全部的請求均爲同步請求,在沒有返回值以前,同步請求將鎖住瀏覽器,用戶其它操做必須等待請求完成才能夠執行。
下面查看一個示例:app

var temp;
$.ajax({
 async: false,
  type : "post",
  url : defaultpostdata.url,
  datatype : 'json',
  success : function(data) {
     temp=data;
  }
});
alert(temp);


這個ajax請求爲同步請求,在沒有返回值以前,alert(temp)是不會執行的。
若是async設置爲:true,則不會等待ajax請求返回的結果,會直接執行ajax後面的語句。異步

總結:異步會先執行ajax後面的語句,等後面的語句執行完了,最後再來執行success方法裏面的(也就是把這個程序分爲兩部分,執行ajax後不會等結果,至關於分了一個線程去執行ajax部分,即爲異步)async

同步則會等待ajax執行,所有執行完再執行後面的語句,就跟後臺程序同樣,從上到下一條條的語句執行。

相關文章
相關標籤/搜索