2017-6-5 Ajax应用

1.Ajax  ---  网页数据异步加载

是指一种创建交互式网页应用的网页开发技术,通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。在不同语言之间传递数据

xml  --- 可扩展的标记语言

json  --- 是一种扩语言的数据传递格式

2.Ajax格式:

data{}  可以传递多个数据,直接在里面写就可以,注意json格式

   data: { "uname": uname, "pwd": pwd, "nike": nike, "sex": sex, "birthday": birthday, "nation": nation, "cla": cla },

error:function(){alert("qqqq")}

用来判断错误的,如果程序走error,代表:

代表服务端路径错误,服务端出错,服务端没有返回指定的json数据格式

3.Json数据格式:

Json对象格式:"{"key1":"value1","key2":"value2","key3":"value3"}"

  注意:最后一个value后面不需要加逗号,只是一行数据的时候不能加[]否则会报错

Json数组格式:"[{},{},{}]"

  注意:数组最后的一个json对象也不需要加逗号,每个{}都是一个json对象

  只有一组数据的时候才能用[],否则会报错

4.ashx  一般处理程序

  只有后台数据,用于处理数据,每一个一般处理程序都需要返回一个json对象

  

  str就是json返回的json对象

  在一般处理程序中,主需要在操作ProcessRequst这个方法里面的内容,其他内容不需要操作

  引Linq命名空间    using System.Linq;

  引泛型集合命名空间     Using System.Collections.Generic;

  引用StringBuilder的命名空间     Using System.Text;

  在一般处理程序中,所有的内置对象都需要context点出来

  获取json中传递过来的数据:

  string uname = context.Request["uname"];

 

5.返回一个json对象的

aaa就是json对象:

string aaa = "{\"return\":\"false\"}";
在json中一个要将双引号就行转义
 string aaa = "{\"return\":\"false\"}";
        
        using (StuDataClassesDataContext con = new StuDataClassesDataContext()) 
        {
            string aa = context.Request["ids"];
            Users u = con.Users.Where(r=>r.ids==Convert.ToInt32( aa)).FirstOrDefault();
            if (u != null)
            {
                con.Users.DeleteOnSubmit(u);
                con.SubmitChanges();
            }
            aaa = "{\"return\":\"true\"}";
            context.Response.Write(aaa);
            context.Response.End();
        }

6.返回一个json数组:

  返回json数组的时候,用 StringBuilder str = new StringBuilder();  这样不会开辟出多余的内存空间,导致数据冗余

  只有json数组的时候才能加[],

   context.Response.Write(str);    context.Response.End();  将数据库中的数据以json数组的形式返回

 StringBuilder str = new StringBuilder();
        str.Append("[");
        using(StuDataClassesDataContext con = new StuDataClassesDataContext())
        {
            int count = 0;
            List<Users> ulist = con.Users.ToList();
            foreach(Users u in ulist )
            {
                if (count > 0) { str.Append(","); };
                str.Append("{\"ids\":\"" + u.ids + "\",\"username\":\"" + u.UserName + "\",\"password\":\"" + u.PassWord + "\",\"nikename\":\"" + u.NikeName + "\",\"sex\":\"" + u.SexStr + "\",\"birthday\":\"" + u.Bir + "\",\"nation\":\"" + u.NationName + "\",\"class\":\"" + u.ClassName + "\"}");
                count++;    
            }
        
        }

        str.Append("]");
        
        
        context.Response.Write(str);
        context.Response.End();

在js页面中解析json数据:

在ajax中的success中解析json数组:

html页面代码:

 

Ajax中的代码:

 $.ajax({
            url: "selectAll.ashx",//数据操作的页面
            data: {},//传递的数据
            type: "post",//解析的方式
            dataType: "json",//数据格式
            success: function (msg) {
                $("#tbody").html("");//先清空页面中的数据,在进行添加
                for (i in msg) {
                    var str = " <tr>";
                    str += "<td>" + msg[i].ids + "</td>";
                    str += "<td>" + msg[i].username + "</td>";
                    str += "<td>" + msg[i].password + "</td>";
                    str += "<td>" + msg[i].nikename + "</td>";
                    str += "<td>" + msg[i].sex + "</td>";
                    str += "<td>" + msg[i].birthday + "</td>";
                    str += "<td>" + msg[i].nation + "</td>";
                    str += "<td>" + msg[i].class + "</td>";
                    str += "<td><input type='button' zhujian='" + msg[i].ids + "' class='shanchu' value='删除'> <input type='button' zhujian2='" + msg[i].ids + "' class='xiugai' value='修改'></td>";
                    str += "</tr>";
                    $("#tbody").append(str);//将输出的结果放到tbody中
                }
            },
            beforeSend: function () {


            },
            complete: function () {

            },

 

  

  

 

posted @ 2017-06-07 16:15  青年a  阅读(202)  评论(0编辑  收藏  举报