Ajax 简介

1.Ajax概述

①Asynchronous JavaScript And XML(异步的JavaScript和XML)是几种技术的强强联合,Ajax实际上就是一种使用JavaScript控制前台所有操作,同时在后台把得到的数据用XML 代码来传递给前台的一种Web程序开发模式。

②好处:(1)请求响应能够通过其他JavaScript动作来实现

(2)可以不用刷新整个页面,只刷新需要改变数据的一部分

(3)能够开发出更具有吸引力的页面效果

③一段XML代码

public String getXML(Student stu){

StringBuffer sb = new StringBuffer();

sb.append("<xml version=1.0 >");

sb.append("<student>");

sb.append("<name>"+stu.getName()+"</name>");

sb.append("<age>"+stu.getAge()+"</age>");

sb.append("</student>");

return sb.toString();

}

2.使用Ajax进行请求和普通form提交请求的区别

①form提交

对象是HttpServletRequest,请求和响应的过程是同步的

<form action="sssServlet" method="post"> </form>

<a href="xxServlet?name=value" >链接</a>

②Ajax请求

对象是XMLHttpRequest,请求和响应的过程是异步的

<!-- JS  代码 -->

xmlreq.open("method","url",true);

xmlreq.send("name=value");

③同步和异步通讯

⑴同步:指两个或两个以上随时间变化的量在变化过程中保持一定的相对关系。

如下图所示:

----     -----     -----     -----         A

-----     -----     -----     -----    B

---------------------------------------    总时间

⑵异步:在发送字符时,所发送的字符之间的时间间隔可以是任意的。当然,接收端必须时刻做好接收的准备,在时间上错开,两边都可以工作,关键是不用刻意刷新页面,等待响应。

如下图所示:

-----  ------    ------------   ----------      A(浏览器)

-------  --------      -----------     -----  B(服务器)

3.Ajax核心处理对象

①核心处理对象是一个浏览器内置的组件,在js中可以用对象名为XMLHttpRequest 来表示。最早出现在IE4里面,后来其他浏览器中也都内置了该对象。不同浏览器创建该对象的方法不一样。

②IE浏览器中所有组件都叫做ActiveXObject,不同控件创建方式不一样

IE5之前 var xmlreq = ActionXObject("Microsoft.XMLHTTP");

IE5之后 var xmlreq = ActionXObject("Msxml2.XMLHTTP");

非IE浏览器 var xmlreq = new XMLHttpRequest();

③常用方法:

(1) xmlreq.abort():取消当前的HTTP请求

(2) xmlreq.open("method","url",true):初始化一个HTTP请求,指定请求方法(Get/Post)、URL、身份验证信息等

(3) xmlreq.setRequestHeader():设置HTTP请求的头信息

(4) xmlreq.getResponseHeader():获得响应内容的HTTP头信息

(5) xmlreq.send(date):发送一个HTTP请求到服务器

④常用属性:

(1)xmlreq.onreadystatechange;指定当发生就绪状态变更事件时的处理者,通常是JavaScript函数

xmlreq.onreadystatechange=function ××(){//回调函数}

(2)xmlreq.readyState       XMLHttpRequest对象专有的异步响应的状态

0 表示未初始化,即XMLHttpRequest 对象未创建open()方法未调用

1 表示XMLHttpRequest对象被创建,但请求未发出send()未调用

2 表示HTTP请求已经发出正在处理中,这时可以取得HTTP头信息,但是HTTP响应内容不可用

3 表示HTTP响应内容部分数据可用,但响应还没有完成

4 表示服务器响应完成,可以从属性responseBody、responseText、responseXML中获得完整响应内容

(3)xmlreq.status           200(按照 HTTP 协议规定的状态值)

xmlreq.readyState=4 与 xmlreq.status=200的区别:

例如:从服务器A发送一仓库瓷器,到浏览器B,中间可能会有很多车来进行运输,而且各个车走的路线也不同。如何保证收到的货数量正确而且没有货物破损?

xmlreq.readyState=4  验证返回数据的数量是否OK

xmlreq.status=200    验证返回数据完整性是否OK

(4)响应主体 responseBody:以无符号字节数组描述响应内容正文

(5)响应流 responseStream:以 IStream(二进制数据流) 形式描述响应内容正文

(6)响应文本 responseText:响应内容正文的纯文本形式

(7)响应 XML responseXML:以XML Dom 描述响应内容正文,(常用)

4.Ajax开发的步骤

①创建XMLHttpRequest对象

②使用xmlreq.open()方法指定要连接的服务器代码和请求提交方法

③指定服务器响应完成后,如何处理服务器响应内容--回调函数

④使用xmlreq.send()提交请求

补充:服务器端操作

①得到页面请求参数

②判断或数据库查询

③通过response对象返回响应结果(与之前有区别)

5.(补充)jQuery基本语法

①使用jQuery

⑴如何引入jQuery <script type="text/javascript" src="jquery.js"></script>

⑵如何调用jQuery要想安全、无错的调用jQuery代码,必须把它们放在一个函数中

<script language=JavaScript>

$(document).ready(function(){

//在这里写 jQuery 代码能够被正常调用

$("div").addClass("a");

});

</script>

-------------------------------------------------------------------------------

document:DOM文档对象,只能调用DOM API中的方法

$(document):jQuery对象,能调用jQuery API中的方法,简单很多

.ready():html文档加载完毕,触发的事件,开始干活

function(){}:html加载完毕后,如何处理

$("div"):jQuery选择器,转化<div>标签为jQuery对象

.addClass("a"):给该标签添加一个class属性,<div class="a">

②核心能力----选择器

jQuery的根本在于它在页面上选择和操作某些元素的能力。

jQuery创建了自己的选择语法,非常简单。它通过HTML元素名、ID、Class查找对象,返回的对象都是jQuery对象

jQuery对象不能直接调用DOM定义的方法,只能使用jQuery API中指定的方法

举例:

$(“div”).show();     //按照html选择

$("p").css("background", "#ff0000");  //

$("#sampleText").html("Hi");   //按照ID选择

$(“.redBack”).css(“background”, “#ff0000”);  //按照CSS选择

jQuery可以合并搜索结果,可以在一个搜索中,将多个搜索条件合并起来。通过使用 “,”分隔每个搜索条件,搜索将返回与搜索词匹配的一组结果

$(“p, span, div”).hide();      //按照合并条件选择

③遍历

<ul>

<li></li>

<li></li>

<li></li>

<li></li>

<li></li>

</ul>

var aa = $("li");  //得到数组

//需要对其中某些元素进行单独的设置,需要循环该数组---循环就是遍历

$("li").each(function(i){

//该每次循环取出的标签添加文字

$(this).html("列表"+i);

});

each() 函数,和“for loop”的功能一样,遍历每个函数并通过迭代递增元素,循环中每个元素的引用都可以通过“this”或$(this)来实现:

实现表格隔行换色效果

$("tr").each(function(i){

$(this).css({background: ["#ccc","#fff"][i%2]});

});

其他函数:

slice(start,end)   //按照指定的开始结束索引截取

next()             //查找后面他紧邻的同辈元素

filter(expr)       //根据条件过滤

④赋值、取值

⑴jQuery可以使用同一个函数实现给页面中某个元素赋值和取值;带参数就是赋值方法;不带参数就是取值方法。

代码如下:

$(“#msg”).html();    //返回id=msg的元素节点的html内容

$(“#msg”).html(“<b>new Content</b>”); //将新内容写入id=msg的元素中

$(“#msg”).text(); //返回id=msg的元素节点的文本内容

$(“#msg”).text(“new Content”); //将文本写入id=msg的元素节点中

$(“#msg”).height();   //返回 id=msg 的元素的高度

$(“#msg”).height(“300”); //将 id=msg 的元素高度设为 300

$(“input”).val();  //返回表单的 value 值

$(“input”).val(“test”);  //将表单的 value 值设置为 test

$(“#msg”).click() ;  //触发 id=msg 的元素的单击事件

$(“#msg”).click([fn]) ;  //为id=msg 的元素的单击事件添加函数

jQuery方法的返回值全部是jQuery对象,所以可以支持方法的连写,简化代码。

⑵jQuery函数可以方便的得到或者修改任意元素的样式,从而改变页面效果

主要包括以下样式:

$("#msg").css("background"); //返回元素的背景颜色

$("#msg").css("background","#ccc") //设定元素背景为灰色

$("#msg").height(300); $("#msg").width("200"); //设定宽高

$("#msg").css({ color: "red", background: "blue" });//以名值对的形式设定样式

$("#msg").addClass("select"); //为元素增加名称为select的class

$("#msg").removeClass("select"); //删除元素名称为select的class

$("#msg").toggleClass("select"); //如果存在(不存在)就删除(添加)名称为select的class

⑶jQuery 还提供了几个实用的方法,实现状态切换功能。如:

toggle()方法包括了hide()和show()方法

slideToggle()方法包括了slideDown()和slideUp方法

⑷jQuery 已经把所有的DOM事件处理都进行了封装,我们可以直接通过jQuery对象获得对象并添加事件处理。

代码如下:

$("#msg").click(function(){alert("good")})//为元素添加了单击事件

$("p").click(function(i){this.style.color=[‘#f00‘,‘#0f0‘,‘#00f‘][i]})

//为三个不同的p元素单击事件分别设定不同的处理

⑤jQuery进行Ajax处理的方法

Ajax 如果使用 JavaScript  完成必须要

(1)进行浏览器判断

(2)创建 XMLHttpRequest 对象

(3)打开与服务器的连接

(4)设置回调函数

(5)发送请求

在jQuery中,把上述5个步骤,合为一体。

$.ajax({

type: "POST",

url: "some.do",

data: "name=John&location=Boston",

success: function(msg){

//回调函数,msg 服务器返回的数据

alert( "Data Saved: " + msg );

}

});

6.(补充)JSON

①在Web程序中,需要从服务器返回数据,要求返回的不只有字符串、还可以返回XML等。

返回的不同格式中包含的数据量不同:

Content-Type="text/html"  "text/xml"

(1)String str = "标题|正文|作者";

解析字符串,适合在传递少量数据时使用

String[] sarr = str.split("|");

String title = sarr[0];

String count = sarr[1];

String author = sarr[2];

(2)服务器返回的数据

"<xml version="1.0" >

<car total="$50.">

<item name="">

<amount></amount>

</itme>

<item name="">

<amount></amount>

</itme>

<item name="">

<amount></amount>

</itme>

</car>"

在浏览器中取出数据

DOM   document.getElementByTagName("car");

jQuery   $("items").each(function(i){

$(this name).val();

});

优缺点对比:

(1)服务器返回String字符串,在浏览器中解析简单,但是数据量比较小。

(2)服务器返回xml字符串,能够包含大量数据,但是服务器端的转化代码不能通用,前台解析有固定的方法,比字符串解析要更可靠。

②程序开发中还可以选择另外一种通用数据格式: JSON

(1)既有字符串的简易性

(2)又有XML的格式化

以下即是JSON的两种结构:

[{"id":"260","name":"长沙"},{"id":"261","name":"张家界"},

{"id":"262","name":"株洲"},{"id":"263","name":"韶山"},

{"id":"264","name":"衡阳"},{"id":"265","name":"郴州"},

{"id":"267","name":"娄底"},{"id":"268","name":"耒阳"},

{"id":"269","name":"永州"},{"id":"270","name":"湘乡"},

{"id":"271","name":"湘潭"},{"id":"272","name":"常德"},

{"id":"273","name":"益阳"},{"id":"274","name":"怀化"},

{"id":"275","name":"邵阳"},{"id":"276","name":"岳阳"},

{"id":"277","name":"吉首"},{"id":"278","name":"大庸"},

{"id":"279","name":"韶山"}]

[{"id":"1","name":"中国"}]

(1)用 []  表示其中包含多个数据,是一个数组

(2)用 {}  表示其中的某一条数据

(3)用  ,  表示数据与数据之间的分割

(4)用  :  表示某一条数据,名称和值的关系

时间: 2024-10-12 08:57:45

Ajax 简介的相关文章

JavaScript教程之jQuery - AJAX 简介

jQuery - AJAX 简介 AJAX 是与服务器交换数据的技术,它在不重载全部页面的情况下,实现了对部分网页的更新. jQuery AJAX 实例 使用 jQuery AJAX 修改文本内容 获取外部内容 尝试一下 ? 什么是 AJAX? AJAX = 异步 JavaScript 和 XML(Asynchronous JavaScript and XML). 简短地说,在不重载整个网页的情况下,AJAX 通过后台加载数据,并在网页上进行显示. 使用 AJAX 的应用程序案例:谷歌地图.腾讯

ajax简介以及用ajax做的三级联动小练习

ajax基本结构: 1 var name = $("#text_1").val(); 2 $.ajax({ 3 url: "Ashxs/Handler.ashx",//一般处理程序路径 4 data: { "name": name },//要传输的数据,冒号前面是键名后面是要传输的数据,如果有多条数据在大括号内用逗号拼接 5 type: "post",//传输方式 6 dataType: "json",//

AJAX简介

基本介绍 AJAX 指异步 JavaScript 及 XML(Asynchronous JavaScript And XML). 国内翻译常为“阿贾克斯”和阿贾克斯足球队同音.Web应用的交互如Flickr,Backpack和Google在这方面已经有质的飞跃.这个术语源自描述从基于Web的应用到基于数据的应用的转换.在基于数据的应用中,用户需求的数据如联系人列表,可以从独立于实际网页的服务端取得并且可以被动态地写入网页中,给缓慢的Web应用体验着色使之像桌面应用一样. Ajax的核心是Java

JQuery Ajax简介

一.什么是AJAX AJAX = 异步 JavaScript 和 XML (Asynchronous JavaScript and XML) 简短点说,就是在不加载整个网页的情况下,AJAX通过后台加载数据,并在网页上进行显示. AJAX是一种创建交互式网页应用的网页开发技术. 二.JQuery AJAX JQuery提供多个与AJAX有关的方法,通过HTTP Get  和 HTTP Post 从远程服务器上请求文本, HTML XML 或 JSON 同时你能够把这些外部数据直接载入网页的被选元

Ajax 简介 及 简单使用

AJAX = Asychroous JavaScript  and XML(异步的Javascript and xml) ajax并不是新的编程语言,而是一种使用现有标准的新方法. ajax是与服务器交换数据并更新部分网页的艺术,在不重载整个页面的情况下 有很多使用 AJAX 的应用程序案例:新浪微博.Google 地图.开心网等等. XMLHttpRequest是Ajax的基础: 所有现代浏览器均支持 XMLHttpRequest 对象(IE5 和 IE6 使用 ActiveXObject).

ajax简介+原生ajax代码

Ajax (Asynchronous Javascript And XML),翻译过来就是异步Javascript和XML:是一种在网页上与服务器进行交互的技术.它异步交互的特性,能够在不刷新页面的情况下,对服务器发出请求并获取数据,再利用js处理数据,显示在原网页上:实现局部刷新的效果. Ajax是通过XMLHTTPRequest这个核心对象,来完成与web服务器的交互 原生js实现Ajax:http://www.cnblogs.com/colima/p/5339227.html

AJAX简介(转)

AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是一种创建交互式网页应用的网页开发技术.它使用:使用XHTML+CSS来表示信息: 使用Javascript操作Document Object Model进行动态显示及交互: 使用 XML 和 XSLT 进行数据交换及相关操作: 使用 XMLHttpRequest对象与Web服务器进行异步数据交换: 使用 JavaScript 将所有的东西绑定在一起. 参见Ajax的提出者Jes

AJAX开发技术--AJAX简介

Asynchronous  JavaScript and XML,异步JavaScript和XML 主要目的用于页面的局部刷新.不用全部刷新,提高性能. 在AJAX中主要是通过XMLHttpRequest对象处理发送异步请求和处理回应的,此对象最早是在IE 5中以ActiveX组件的形式出现的,一直到2005年之后才被广泛的使用,而如果要想创建一个XMLHttpRequest对象必须使用JavaScript. 创建XMLHttpRequest对象 —— create_ajax.htm : <sc

jQuery - AJAX 简介

AJAX是与服务器交换数据的艺术,它在不重载全部页面的情况下,实现了对部分网页的刷新. jQuery - AJAX 实例,通过jQuery AJAX改变这段文本. 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="

ajax 简介0

WEB项目总是发生些新的变化,过去每个人都会抱怨WEB项目功能不如CS程序丰富,相应速度不够快速.但现在由于Ajax的出现有了很大的改观,具有快速的高响应性的用户界面.在传统的Web 应用程序中,当用户单击链接时,要等待服务器作出响应并且刷新页面,而且这个过程会重复进行.但是,这些新站点具有更好的响应性,能够立即更新页面,这提供了出色的交互和更好的用户体验.这些新站点的强大功能来自于称为Ajax 的新技术(其实这种技术并不是全新的).可以使用Ajax技术让自己的站点具有更好的响应性.更吸引人,这