• Juery返回Json数据格式,webForm中使用


     此篇的详细篇

    //webForm中使用异步就会用到一般处理程序,前台调用一般处理程序这个页面去执行里面的方法

    using System.Web.Script.Serialization;  

    Newtonsoft.Json.dll 需要自己下载这个dll,下面的Newtonsoft.Json.JsonConvert.SerializeObject才能使用,省市区三级联动里面有这个dll.

    //后台   一般处理程序

    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
    ,则所有的请求均为同步请求,在没有返回值之前,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。
    下面查看一个示例:

    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部分,即为异步)

    同步则会等待ajax执行,全部执行完再执行后面的语句,就跟后台程序一样,从上到下一条条的语句执行。

  • 相关阅读:
    模仿outlook快捷方式栏的一个控件
    买了一本书《Programming pearls》编程珠玑(88上的数学题目(1))
    一个IE动画图标的小例子
    对水波特效实现原理的解释
    向量空间的几何变换
    一个简单Led控件
    【转载】配置(visual studio.net已检测到指定的web服务器运行的不是asp.net1.1版)
    最近学习ASP2.0相关的几个小问题(非创新性文章)
    一道c的面试题,大数相乘。
    Led控件(2)——Led显示屏模拟
  • 原文地址:https://www.cnblogs.com/Sea1ee/p/6585857.html
Copyright © 2020-2023  润新知