Ajax1

一、Ajax是什么?

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

AJAX应用可以仅向服务器发送并取回必需的数据,并在客户端采用JavaScript处理来自服务器的响应。因为在服务器和浏览

器之间交换的数据大量减少,结果我们就能看到响应更快的应用。同时很多的处理工作可以在发出请求的客户端机器上完成,所以

Web服务器的处理时间也减少了。

二、Ajax基本过程和格式

1、引入JQuery文件

2、js中ajax的格式


var ss = $(this).val().trim();//取值
if (ss.length <= 0) {
return false;
}

$.ajax({

            url: "ajax/yong.ashx",//将数据提交到服务端
            data: { "un": ss },//提交的数据
            type: "post",//提交的方式
            dataType: "json",//返回的数据类型
            success: function (aa) //没错时,返回数据执行的语句
            {
                if (aa.has == "0") {
                    $("#Label1").text("可用").css("color", "green");
                }
                else {
                    $("#Label1").text("已存在").css("color", "red");
                }
            },//success
            error:function(){alert("连接服务端失败!");}//如果出错执行的语句
        });//ajax

3、创建LinQ

4、创建服务端

添加一般处理程序 后缀.ashx

导入命名空间

 string uname=context.Request["un"];//获取传入的值
        string end="{\"has\":\"0\"}";//创建ajax对象
       //数据库查询
        using(LinQlianxiDataContext con=new LinQlianxiDataContext())
        {
        var u=con.Users.Where(z=>z.UserName==uname).AsEnumerable();
            if(u.Count()>0){
            end="{\"has\":\"1\"}";
            }
        }
        context.Response.Write(end);//返回json
        context.Response.End();//结束输出

注:(1)xml和json的作用:在不同语言之间进行数据传递

最早使用的数据类型是 xml
劣势:
a、代码量较大
b、结构不清晰
c、解析起来麻烦

现在使用的数据类型是 json
优势:
a、结构清晰
b、类似于面向对象的解析方式

(2)json基本格式:

{"key":"value","":"","":""}

多个对象时[{"key":"value","":"","":""},{"key":"value","":"","":""},...,{"key":"value","":"","":""}]

三、展示表格

HTML代码

 <table style="background-color:navy;text-align:center;width:90%;margin:auto;">
       <thead>
           <tr style="color:white;">
               <td>用户名</td>
               <td>密码</td>
               <td>昵称</td>
               <td>性别</td>
               <td>出生日期</td>
               <td>民族</td>
           </tr>
       </thead>
       <tbody>
       </tbody>
   </table>
        <asp:Button ID="Button1" runat="server" Text="加载" />

js代码

 $("#Button1").click(function () {
        $.ajax({
            url: "sanji.ashx",
            data: {},
            type: "post",
            dataType: "json",
            success: function (data) {
                $("#bd tbody").empty();//清空,防止重复加载
                for (i in data) {
                    var ss = "<tr style=\"background-color:white;\">";
                    ss += "<td>" + data[i].usersname + "</td>";
                    ss += "<td>" + data[i].mima + "</td>";
                    ss += "<td>" + data[i].nc + "</td>";
                    ss += "<td>" + data[i].sex + "</td>";
                    ss += "<td>" + data[i].bir + "</td>";
                    ss += "<td>" + data[i].nation + "</td>";
                    ss += "</tr>";
                    $("#bd tbody").append(ss);
                }

            },//success
            error: function () { alert("连接服务端shibai!"); }
        });//ajax
        return false;//我使用的Button不是使用表单元素,这句必须有!!!
    });//click

一般处理程序

//引入的命名空间
using System.Linq;
using System.Collections;
using System.Collections.Generic;
using System.Text;
//代码
int count = 0;//作用是判断需不需加","
        StringBuilder str = new StringBuilder();//省内存
        str.Append("[");
        using(LinQlianxiDataContext con=new LinQlianxiDataContext())
        {
            var list = con.Users.AsEnumerable();
            foreach(Users u in list)
            {
                if (count > 0)
                {
                    str.Append(",");
                }
       //拼写时注意!!注意!!注意!!另外在这里扩展属性
                str.Append("{\"usersname\":\"" + u.UserName + "\",\"mima\":\"" + u.PassWord + "\",\"nc\":\"" + u.NickName + "\",\"sex\":\"" + u.Sexstr + "\",\"bir\":\"" + u.Birthdaystr + "\",\"nation\":\"" + u.Nationname+ "\"}");
                count++;
            }
        }
        str.Append("]");
        context.Response.Write(str);
        context.Response.End();

四、三级联动

注意:异步导致程序不是按代码顺序执行

//页面加载时调用执行
hanshu("0001", $("#DropDownList1"),"1");
//封装的方法,参数1:父级编号;参数2:控件;参数3:对应省市区    function hanshu(p,drop,n) { $.ajax({
            url: "ajax/sanji.ashx",
            data: { "pcode":p},
            type: "post",
            dataType: "json",
            success: function (data) {
                drop.empty();              //省调用这个函数时执行n=="1"
                if(n=="1"){
                for(i in data)
                {
                    var ss = "<option value=\""+data[i].acode+"\">"+data[i].aname+" </option>";
                    drop.append(ss);
                }
                hanshu($("#DropDownList1").val(), $("#DropDownList3"), "2"); //省改变时改变市
                }//n==1              //市调用这个函数时执行n=="2"                if (n == "2") {
                    for (i in data) {
                        var ss = "<option value=\"" + data[i].acode + "\">" + data[i].aname + " </option>";
                        drop.append(ss);
                    }

                    hanshu($("#DropDownList3").val(), $("#DropDownList2"), "3");//市改变时改变区
                }//n==2             //区调用这个函数时执行n=="3"                if (n == "3") {
                    for (i in data) {
                        var ss = "<option value=\"" + data[i].acode + "\">" + data[i].aname + " </option>";
                        drop.append(ss);
                    }
                }//n==3
            },//success
            error: function () { alert("连接服务端错误!!");}
        });//ajax
    }
//省改变事件
    $("#DropDownList1").change(function () {
        hanshu($(this).val(), $("#DropDownList3"), "2");
    });
//市改变事件
    $("#DropDownList3").change(function () {
        hanshu($(this).val(), $("#DropDownList2"), "3");
    });
时间: 2024-08-08 05:31:33

Ajax1的相关文章

ajax1.0_2.0

ajax<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <input type="button" value="点击发送请求" id="send"> <div id="content&q

JavaScript之Ajax-1 Ajax(Ajax原理、Ajax对象属性和方法)

一.Ajax原理 Ajax简介 - Asynchronous JavaScript And Xml 异步的 JavaScript 和 Xml - Ajax 是一种用来改善用户体验的技术,其实质是,使用XMLHttpRequest对象异步地向服务器发送请求 - 服务器返回部分数据,而不是一个完整的页面,以页面无刷新的效果更改页面中的局部内容 Ajax工作原理 获取Ajax对象 二.Ajax对象属性和方法 异步对象的属性和方法 onreadystatechange - onreadystatecha

新手学ajax1

学习的动力是最近想实现servlet向js传值,是html中的js,因为jsp是可以直接调用java 类的,在网上搜索了好久感觉ajax能帮我实现. 以下代码可以实现js向服务器发出一 request服务器响应一个文本或者XML js接受并且向叶面输出,html页面很简单三个标签,俩链接,另外一个负责显示接受的数据,另外患有俩一个是txt文本,一个是XML格式的文件内涵choices标签 html <!DOCTYPE html><html>  <head>    <

Ajax-1

XMLHttpRequest 对象是AJAX功能的核心. 1:获得XMLHttpRequest对象. 2:调用XMLHttpRequest 对象的open方法发送提交 open("post","xxx.jsp","true"); 3:回调函数:确认服务器状态.

ajax1—php(27)

一 简介 web程序工作原理图: 传统的web程序工作原理图: Ajax工作原理图: 1.  关于Ajax l  Asynchronous 异步 l  JavaScript l  And l  XML Ajax就是利用javascript与xml和服务器交互数据的一种技术 Xml: Json: 2.  发展历程 l  1998年           诞生 l  2005年 流行 3.  运行平台 l  Google Chrome l  Mozilla l  Firefox l  Internet

xml与ajax1

xml必须要有一个头 <?xml version="1.0" encoding="UTF-8" ?> 标签必须关闭,语法比较严谨,<>这是实体左右尖括号:<![CDATA[要写的数据内容]]>这是cdata区用来写不需要转义的内容:标签可以随意添加属性,很灵活:但会造成解析困难,所以要有文档定义(xx.dtd)来规定内容的规范,文档定义按照自己的需求写:如下使用 里面就规定了有什么标签,标签有什么属性,dtd不能使用两个文档定义,

使用history.pushState()和popstate事件实现AJAX的前进、后退功能

上一篇文章中,我们使用location.hash来模拟ajax的前进后退功能.使用location.hash存在下面几个问题: 1.使用location.hash会导致地址栏的url发生变化,用户体验不够友好. 2.location.hash产生的历史记录无法修改,每次hash改变都会导致产生一个新的历史记录. 3.location.hash只是1个字符串,不能存储很多状态相关的信息. 为了解决这些问题,HTML5中引入了history.pushState().history.replaceSt

使用$.when()解决AJAX异步难题之:多个ajax操作进行逻辑与(and)

上一篇文章"JQuery.deferred提供的promise解决方式",提到了javascript异步操作的3个问题,以及javascript Promise入门.如今我们看下怎样利用$.when()来解决上一篇博客中的第3个问题. "考虑这样的场景.假如我们同一时候发送两个Ajax请求,然后要在两个请求都成功返回后再做一件接下来的事,想一想假设仅仅按前面的方式在各自的调用位置去附加回调,这是不是非常困难?" 使用when(),我们能够通过类似以下的代码解决问题.

Ajax复习总结

目录 ajax ajax入门程序: ajax-api详解 常用属性: 常用方法: jquery中的ajax 四种: 案例-使用jquery的ajax判断用户是否被占用 步骤分析: 实现 案例-模仿百度搜索 需求: 步骤分析: 实现 案例-省市联动 需求: 步骤分析: 实现 ajax ajax 异步JavaScript和XML, AJAX 是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部