zoukankan      html  css  js  c++  java
  • AJAX 基本结构 数据加载

    AJAX

             -- 网页数据异步加载

      .ashx

               一般处理程序

      json

             数据格式,在不同的语言之间传递数据

    对象格式:     "{"key":"value","key":"value"}"

    数组格式:     "[{"key":"value"},{},{}]"

                 -- 都是字符串格式

    例1、对象格式

    <%@ WebHandler Language="C#" Class="Handler" %>
    
    using System;
    using System.Web;
    using System.Linq;
    
    public class Handler : IHttpHandler
    {
    
        public void ProcessRequest(HttpContext context)
        {
            string end = "{"has":"false"}";
            
            string s = context.Request["uname"];  //接受网页传进来的数据
            
            using (DataClassesDataContext con = new DataClassesDataContext())
            {
                Users u = con.Users.Where(r => r.UserName == s).FirstOrDefault();
                
                if (u != null)
                {
                    end = "{"has":"true"}";
                }
            }
    
            context.Response.Write(end); //将结果写出去
            
            context.Response.End();   //调用 end ,不在写别的东西
    
    
        }
    
        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    
    }
    Handler.ashx

        -- 所有内置对象都需要通过 context 点出来 

    例2、数组格式

    <%@ WebHandler Language="C#" Class="Handler2" %>
    
    using System;
    using System.Web;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;  //拼接文本
    
    public class Handler2 : IHttpHandler
    {
    
        public void ProcessRequest(HttpContext context)
        {
            StringBuilder str = new StringBuilder();  //拼接文本对象
    
            str.Append("[");
    
            using (DataClassesDataContext con = new DataClassesDataContext())
            {
                List<Users> ulist = con.Users.ToList();
                int count = 0;
                foreach (Users u in ulist)
                {
                    if (count > 0)
                    {
                        str.Append(",");    //当前面已经有字符时,在每句前面加 逗号
                    }
    
                    str.Append("{"username":"" + u.UserName + "","password":"" + u.PassWord + "","nickname":"" + u.NickName + "","sex":"" + u.Sex + "","birthday":"" + u.Birthday + "","nation":"" + u.Nation + ""}");
                    count++;
                }
            }
    
            str.Append("]");
    
            context.Response.Write(str);
            context.Response.End();
        }
    
        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    
    }
    Handler2.ashx

        -- StringBuilder str = new StringBuilder();

        --str.Append(字符串);

                        -- 拼接文本对象,在堆栈中不会开辟新空间,将原空间扩大

    jqeury.ajax基本结构

    基本结构

    $.ajax({
            url : "Handler.ashx",                      -- 提交到哪个服务端

            data: { "uname": s },                   -- 提交的数据,以键值对的方式传字符串,只能是字符串,可以传多个

            type: "post",                                -- 用什么方法

            dataType: "json",                        -- 返回值的类型

            async:true,    (默认可不写)           -- 异步执行 (async: false  关闭异步功能)

            success: function ( msg ){

                      回调,处理完毕返回的结果 

             },      

            error:function(  ){

                      出错( 路径错,服务端错,没有返回规定的json格式数据)

              },            

            beforeSend:function(  ){

                         发送之前执行(防止重复请求)

             }, 

             complete:function(  ){  

                              加载完后执行  

              }        

      });

                 -- 传递进去的是字符串,返回的是字符串

    例3,操纵一个 json 对象

    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title></title>
        <script src="js/jquery-1.7.1.min.js"></script>
    </head>
    <body>
    
        <input type="text" id="txt1" placeholder="请输入用户名" />
        <span id="txt1_msg"></span>
    
    </body>
    </html>
    
    <script type="text/javascript">
    
        $("#txt1").keyup(function () {
    
            var s = $(this).val();    //取文本框的值
    
            if (s.length < 6) {
    
                $("#txt1_msg").text("用户名不可以小于6位!");
    
                return;    //当文本框的值不够6位时,不进入AJAX
            }
    
            $.ajax({
                url: "Handler.ashx",
                data: { "uname": s },   //提交的数据,(k:v) k 与例1对应
                type: "post",
                dataType: "json",
                success: function (msg) {
                    if (msg.has == 'false') {
                        $("#txt1_msg").text("恭喜!用户名可用!");
                        $("#txt1_msg").css('color','green');
                    }
                    else {
                        $("#txt1_msg").text("用户名已被占用!");
                        $("#txt1_msg").css('color', 'red');
                    }
                }
            });
    
    
        });
    View Code

                                              --与例1 对应 

    例4、操纵一组对象

    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title></title>
        <script src="../js/jquery-1.7.1.min.js"></script>
    </head>
    <body>
        <input type="button" value="加载数据" id="btn1" />
    
    
        <table id="tb1" style=" 100%; text-align: center; background-color: navy;">
    
            <thead>    
                <tr style="color: white;">
                    <td>用户名</td>
                    <td>密码</td>
                    <td>昵称</td>
                    <td>性别</td>
                    <td>生日</td>
                    <td>民族</td>
                </tr>
    
            </thead>  
            <tbody id="tbody1">
            </tbody>
    
    
    
        </table>
    </body>
    </html>
    <script type="text/javascript">
    
        $("#btn1").click(function () {
            $.ajax({
                url: "../Handler2.ashx",
                data: {},
                type: "post",
                dataType: "json",
                success: function (msg) {   //返回的是一个集合
    
                    $("#tbody1").html("");  //清除,内容变空
    
                    for (var i = 0; i < msg.length; i++)
                    {
                        var str = "  <tr style="background-color: white;">"
                        str += " <td>" + msg[i].username + "</td>";
                        str += "<td>" + msg[i].password + "</td>";
                        str += " <td>" + msg[i].nickname + "</td>";
                        str += " <td>" + msg[i].sex + "</td>";
                        str += " <td>" + msg[i].birthday + "</td>";
                        str += " <td>" + msg[i].nation + "</td>";
                        str += "</tr>";
                        $("#tbody1").append(str);  //末尾追加
                    }
    
                },
                error: function () {   //错误,如果找不到服务端,执行此方法
                    alert('err');
                }
            });
    
        });
    
    
    
    </script>
    View Code

                                              -- 与例2 对应

    --表格中

    <thead> </thead>     --表 标题

    <tbody ></tbody>    -- 表 内容

    jQuery对象与DOM对象的相互转换

     jQuery对象转成DOM对象: 

    两种转换方式

    1、通过[index]的方法 

    var $v =$("#v") ;      -- jQuery对象 

    var v=$v[0];              --DOM对象 

    2、通过.get(index)方法

     var $v=$("#v");             --jQuery对象 

     var v=$v.get(0);              --DOM对象 

    DOM对象转成jQuery对象: 

    用$()把DOM对象包装起来

    var v=document.getElementById("v");     -- DOM对象 

    var $v=$(v);                                               -- jQuery对象 


  • 相关阅读:
    cron生成
    sp_addlinkedserver,Synonym
    上海城市坐标
    评分插件 jquery.raty.js
    ORA-12514: TNS:listener does not currently know of service requested in connect
    ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist
    工厂模式
    单例模式
    Qt中的Q_OBJECT作用, 以及信号槽
    DDLog-不同颜色打印信息
  • 原文地址:https://www.cnblogs.com/Tanghongchang/p/6947713.html
Copyright © 2011-2022 走看看