zoukankan      html  css  js  c++  java
  • ajax异步加载

    AJAX:

      即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。

      AJAX可以跨语言传递数据,所需文件类型是一般处理程序(数据接口):ashx

    数据交换格式:

      xml:

        结构不清晰

        代码量比较大

        查找起来比较费事

        非面向对象结构
      json:

        结构清晰

        代码量相对较小

        面向对象的处理解析方式,查找数据很简单

    json的格式:

      键值对

        {"key1":"value","key2":"value"}

      多个对象的json

        [{"key1":"value","key2":"value"},{"key1":"value","key2":"value"},{"key1":"value","key2":"value"}]

    AJAX的使用:

      JS部分的固定格式:(需引用jquery)

    $.ajax({
                url: "ajax/bbb.ashx", //要将此次请求提交到哪个服务端去
                data: { "zhangke": c }, //给服务端带的数据,可以没有,也可以多个
                type: "post", //传递的方式
                dataType: "json", //数据传递的格式
                success: function (aaa) {
                    document.getElementById("Label1").innerHTML = aaa.lmz;
                    if (aaa.xc == "true") {
                        document.getElementById("Label1").style.color = "green";
                    }
                    else {
                        document.getElementById("Label1").style.color = "red";
                    }
                }
            });
    AJAX固定格式
     $.ajax({
                url: "", //服务器路径
                data: { }, //传递的参数,可为空,可多个
                type: "post", //传递参数的方式,可POST可GET,一般用POST
                dataType: "json", //数据传递的格式,有Json和xml两种
                success: function (data) { //成功返回数据执行这里,排第2
                    
                },
                beforeSend: function () { //一触发ajax就执行,无任何延迟,排第1
                   
                },
                complete: function () { //所有的方法都执行完毕后再来执行这里,排最后(不管成功失败都会执行)
                    
                },
                error: function () { //服务器路径错误,或是服务器内部错误,走这里报错,此位置与success只会走一个
                
                }
            });
    AJAX完整格式

      后台部分:

    public void ProcessRequest (HttpContext context) {
    
            string s = context.Request["zhangke"];
    
            string end = "{"lmz":"恭喜!用户名可用!","xc":"true"}";
            
            if (s == "zhangsan" || s == "lisi")
            {
                end = "{"lmz":"用户名已被占用!","xc":"false"}";
            }
    
            context.Response.Write(end);
            context.Response.End();
            
        }
    后台部分方法

      注意:json的格式一定不能错,中间的许多双引号需要转义符,如果容易弄错,个人方法是可以先用个其他符号代替,比如单引号,然后对字符串进行操作把里面的所有单引号替换为双引号

    AJAX扩展:(加载多行数据)

      关键部分是后台中需要给JS传递过去多个json对象,以及JS中如何把多个对象的数据加载到表格中

      首先,写好查询方法,查询出需要的数据,返回一个泛型集合,然后用循环拼接出json,特别要注意逗号的拼接

    string json = "[";
    
            List<Users> ulist = new UsersData().Select(c, n);
    
            int count = 0;
            foreach (Users u in ulist)
            {
                if (count > 0)
                {
                    json += ",";
                }
    
                json += "{"username":"" + u.UserName + "","password":"" + u.PassWord + "","nickname":"" + u.NickName + "","sex":"" + (u.Sex ? "" : "") + "","birthday":"" + u.Birthday.ToString("yyyy年MM月dd日") + "","nation":"" + u.Nation + "","class":"" + u.Class + "","age":"" + u.Age + ""}";
                count++;
            }
    
            json += "]";
    
            context.Response.Write(json);
            context.Response.End();
    创建多个json

      然后在界面的表格中,我们需要先写一个tbody标签并给一个id,创建一个变量,把从后台接收过来的多个json对象中的数据进行拼接加工,把这个变量拼接成表格中一段完整的HTML代码,然后使用innerHTML直接添加到tbody中

    $.ajax({
            url: "ajax/Load.ashx",
            data: { "count": count, "number": number },
            type: "post",
            dataType: "json",
            success: function (data) {
                document.getElementById("tbody").innerHTML = "";
                for (i in data) {
                    var end = "<tr>";
                    end += "<td>" + data[i].username + "</td>";
                    end += "<td>" + data[i].password + "</td>";
                    end += "<td>" + data[i].nickname + "</td>";
                    end += "<td>" + data[i].sex + "</td>";
                    end += "<td>" + data[i].age + "</td>";
                    end += "<td>" + data[i].birthday + "</td>";
                    end += "<td>" + data[i].nation + "</td>";
                    end += "<td>" + data[i].class + "</td>";
                    end += "</tr>";
    
                    document.getElementById("tbody").innerHTML += end;
                }
                document.getElementById("sp-number").innerHTML = number;
            }
        });
    多个json对象的js部分

        

      

      

  • 相关阅读:
    我的浏览器收藏夹分类
    我的浏览器收藏夹分类
    Java实现 LeetCode 318 最大单词长度乘积
    Java实现 LeetCode 318 最大单词长度乘积
    Java实现 LeetCode 318 最大单词长度乘积
    Java实现 LeetCode 316 去除重复字母
    Java实现 LeetCode 316 去除重复字母
    Java实现 LeetCode 316 去除重复字母
    Java实现 LeetCode 315 计算右侧小于当前元素的个数
    Java实现 LeetCode 315 计算右侧小于当前元素的个数
  • 原文地址:https://www.cnblogs.com/wt627939556/p/6287242.html
Copyright © 2011-2022 走看看