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执行,所有执行完再执行后面的语句,就跟后台程序同样,从上到下一条条的语句执行。

相关文章
相关标签/搜索