Ajax详解

===》Ajax详解《===

Ajax特性

1

1、Ajax是什么?

Asynchronous javascript and xml :异步的JS和XML

2

2、异步交互和同步交互

同步

--->发一个请求,就要等待服务器的响应结束。然后才能发第二个请求!中间这段时间就是一个字“卡”

--->刷新的是整个页面!!

异步

--->发一个请求后,无需等待服务器的响应,然后就可以发第二个请求!

--->可以使用JS结束服务器的响应,然后使用JS来局部来机新

3

3、Ajax常见应用场景

百度搜索框

用户注册时(用户名是否已被注册)

4

4、Ajax的优缺点

优点

--->异步交互;增强了用户的体验!

--->性能:因为服务器无需再响应整个页面,只需要响应部分内容,所以服务器的压力减轻了

缺点:

Ajax不能应用在所有场景!

Ajax无端的增多了对服务器的访问次数,给服务器到来了压力!

Ajax发送异步请求(四步操作)

1

* Ajax其实只需学习一个对象:XMLHttpRequest,如果掌握了他,就掌握了Ajax!!

* 得到XMLHttpRequest

大多数浏览器都支持:var xmlHttp=new XMLHttpRequest();

IE6.0:var xmlHttp =new ActiveXObject("Microsoft.XMLHTTP");

编写创建XMLHttpRequest对象的函数

functioncreateXMLHttpRequest(){

try{

return newXMLHttpRequest();

}catch(e){

try{

return newActiveXObject("Msxml2.XMLHTT P");

}catch(e){

try{

return newActiveXObject("Microsoft.XMLHTT P");

}catch(e){

alert(哥儿们,你用的是什么浏览 器???);

throw e;

}

}

}

}

2

服务器连接

---xmlHttp.open();用来打开与服务器的连接,它需要三个参数:

》请求方式:可以是GET或POST

》请求的URL:制定服务器端资源,例如:/day1/AServlet

》请求是否为异步:如果为true表示发送异步请求,否则为同步请求!

---xmlHttp.open("GET","/day1/AServlet",true);

3

发送请求

---xmlHttp。send(null);如果不给可能会造成部分浏览器无法发送!

》 参数:就是请求体内容!如果是GET请求,必须给出null。

4

---在xmlHttp对象的一个事件上注册监听器:onreadystatechange

---xmlHttp对象一共有5个状态:

》0状态:刚创建,还没有调用open方法;

》1状态:请求开始:调用了open方法,但还没有调用send()方法

》2状态:调用玩了send()方法;

》3状态:服务器已经开始响应,但不表示响应结束!

》4状态:服务器响应结束!(通常我们只关心这个状态)

---得到xmlHttp对象的状态:

》var state=xmlHttp.readState;//可能是0、1、2、3、4

---得到服务器响应的状态码

》var status=xmlHttp.status;//例如200、404、500

---得到服务器响应的内容

》var content =xmlHttp.responseText;//得到服务器的响应的文本格式的内容

》var content =xmlHttp.responseXML;//得到服务器的响应的XML响应的内容,它是Document对象了!

xmlHttp.onreadystatechange=function(){//xmlHttp的5种状态都会调用本方法

if(xmlHttp.readyState==4 && xmlHttp.status==200){//双重判断:判断是否为4状态,而且还要判断是否为200

//获取服务器的响应内容

var text =xmlHttp.responseText;

}

};

第二例:发送POST请求(如果发送请求时需要带有参数,一般都用POST请求)

* open:xmlHttp.open("POST" ....);

* 添加一步:设置Content-Type请求头:

> xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

* send:xmlHttp.send("username=zhangSan&password=123");//发送请求时指定请求体

第三例:注册表单之校验用户是否注册!

1

编写页面:

* ajax3.jsp

> 给出注册表单页面

> 给用户名文本框添加onblur事件的监听

> 获取文本框的内容,通过ajax4步发送给服务器,得到响应结果

* 如果为1:在文本框后显示“用户名已被注册”

* 如果为0:什么都不做!

2

2编写Servlet

* ValidateUsernameServlet

> 获取客户端传递的用户名参数

> 判断是否为itcast

* 是:返回1

* 否:返回0

第四例:响应内容为xml数据

* 服务器端:

> 设置响应头:ContentType,其值为:text/xml;charset=utf-8

* 客户端:

> var doc = xmlHttp.responseXML;//得到的是Document对象!

第五例:省市联动

1

1. 页面

===请选择省份===

===请选择城市===

2

2. ProvinceServlet

* ProvinceServlet:当页面加载完毕后马上请求这个Servlet!

> 它需要加载china.xml文件,把所有的省的名称使用字符串发送给客户端!

3

3. 页面的工作

* 获取这个字符串,使用逗号分隔,得到数组

* 循环遍历每个字符串(省份的名称),使用每个字符串创建一个元素添加到这个元素中

4

4. CityServlet

* CityServlet:当页面选择某个省时,发送请求!

* 得到省份的名称,加载china.xml文件,查询出该省份对应的元素对象!,把这个元素转换成xml字符串,发送给客户端

5

5. 页面的工作

* 把中的所有子元素删除,但不要删除===请选择城市===

* 得到服务器的响应结果:doc!!!

* 获取所有的子元素,循环遍历,得到的内容

* 使用每个的内容创建一个元素,添加到

作者:阿吃UAdaill

本文来自企鹅号 - Hacker凯文媒体

登录 后参与评论
0 条评论

相关文章

  • Ajax详解

    image.png 一:什么是Ajax Ajax是(Asynchronous JavaScript And XML)是异步的JavaScript和xml。也...

    java达人
  • Ajax详解

    一、ajax定义 ajax 的全称是Asynchronous JavaScript and XML,其中,Asynchronous 是异步的意思,它有别于传统w...

    柴小智
  • Ajax详解

    作为资深球迷,提起Ajax,第一反应想到的是阿贾克斯,那个曾培养出伊布,范德法特,苏亚雷斯,亨特拉尔等一众球星的荷甲著名球队。

    南风
  • jQuery的ajax详解

    jQuery内部也封装了对原生ajax请求的方法,可以很方便我们的对后台异步请求处理。

    老马
  • jQuery - AJAX详解笔记

    什么是 AJAX? AJAX = 异步 JavaScript 和 XML(Asynchronous JavaScript and XML)。 简短地说,在不重载...

    九霄道长
  • jQuery - Ajax详解分析

    ajax() 方法通过 HTTP 请求加载远程数据。 该方法是 jQuery 底层 AJAX 实现。简单易用的高层实现见 $.get, .post等(我们也只...

    用户7718188
  • jQuery - Ajax详解分析(二)

    用户7718188
  • jQuery - Ajax详解分析(三)

    回调函数 如果要处理 $.ajax() 得到的数据,则需要使用回调函数:beforeSend、error、dataFilter、success、complet...

    用户7718188
  • Ajax详解(拓展:利用Ajax实现用户名的校验)

    注:尤其重点记忆Ajax的方式,因为这种方式应用范围最广,其他属性请自行搜索jquey的API

    时间静止不是简史
  • 详解 Ajax

      Ajax:标准读音 [ˈeɪˌdʒæks] ,中文音译:阿贾克斯。这个术语源自描述从基于 Web 的应用到基于数据的应用。Ajax 不是一种新的编程语言,而...

    Demo_Null
  • $.ajax()方法详解

    1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址。

    Rekent
  • Ajax技术详解(上)

    我们知道,在没有ajax技术之前,客户端若要与服务端进行数据交互,它的大概流程是:客户端发起一个http请求(也可能是其他的请求)然后处于等待状态,等到服务端将...

    石璞东
  • jquery中ajax参数详解

    title: $.ajax参数详解 date: 2017-04-08 15:25:57 tags: ajax categories: ajax

    念念不忘
  • 第108天:Ajax中XMLHttpRequest详解

       在Ajax应用程序中,XmlHttpRequest对象负责将用户信息以异步通信地发送到服务器端,并接收服务器返回的响应信息和数据。

    半指温柔乐
  • $.ajax()方法参数详解

    type: 要求为String类型的参数,请求方式(post或get)默认为get。注意其他http请求方法,例如put和delete也可以使用,但仅部分浏览器...

    ydymz
  • 【AJAX】AJAX技术详细解析以及实例

    全称: Asynchronized(异步) Javascript And Xml 技术组成有: Javascript、DOM、CSS 和 XMLHttpRe...

    谙忆
  • 异步编程Ajax的详解,并对其进行封装整理

    对于Ajax,肯定很多小伙伴都听过甚至用过了,那么没听过的也不用着急,本文会对Ajax进行讲解,其次,一定还有一些人只用过JQuery封装好了的Ajax却对原生...

    @零一
  • django中的ajax组件教程详解

    Ajax(Asynchronous Javascript And XML)翻译成英文就是“异步Javascript和XML”。即用Javascript语言与服务...

    砸漏

扫码关注云+社区

领取腾讯云代金券