Ajax
首先大概说下同步交互和异步交互
空洞的说写概念的话,比较抽象,所以举例说下什么是异步和同步
同步就是我发送了数据,我必须等接收方接收完了才能发送下一个数据
异步就是我发送了数据,接收方接收吧,我不用看着发完在发送下个数据,你只要发送完告诉我就行。
Ajax的全程就是异步的javascript和xml
定义的是允许浏览器与服务器通信而无须刷新当前页面的技术都被叫做Ajax
Ajax的模型比传统的模型好在什么地方?
1.需要的页面的数量少,性能高
2.同样的场景下,Ajax交互的数据小,对我们带宽的要求降低
3.对服务器端造成的压力小
出了Ajax技术还有flash,iframe,xmlhttprequest等技术可以实现异步交互。

下面说下AJAX的工作原理
客户端和服务端之间存在Ajax引擎,Ajax实现交互时,大量使用了Ajax引擎和javascript引擎

AJAX 不是一种技术,它包含了javascript,xHtML和css,Dom和xmlhttprequest等

Ajax的缺陷:
1.Ajax不适用于任何场景,取决于浏览器的支持,客户端和服务端不刷新页面,容易使页面的缓存数据较多,用户经常搞不清楚,数据是新的还是旧的,这是就必须拿出一块地方进行专门的提示,浏览器也失去了前进和后退的功能。而且Ajax对媒体流不能很好的支持,对一些手持设备不能很好地支持,只能基本上支持Ajax异步交互

下面着重说下Xmlhttprequest
xmlhttprequest是javascript的对象,作用是实现客户端和服务端之间的请求和响应,是Ajax的核心对象

下面说下Ajax的实现步骤:
1.创建Xmlhttprequest对象
2.注册监听
2.1获取服务端的通信状态
2.2获取服务器端的响应状态码
3.建立连接
4.发送请求




注册监听
使用xmlhttprequest对象的onreadystatechange属性:监听服务器的通信状态
使用xmlhttprequest对象的readyState属性获取服务器的响应状态。
使用xmlhttprequest对象的satus属性:获取响应信息的首部信息的前三位状态码
客户端与服务器之间建立连接
使用的是xmlhttprequest对象的open(method,url,asynch)方法
请求类型有get和post两种方式
向服务端发送请求数据
使用xmlhttprequest对象send()方法,其中在post方式下send可以发送数据,但是必须设置请求头信息content-type
使用

使用Ajax异步交互时。客户端接收服务器的相应数据:
使用xmlhttprequest对象的responseText属性:接受的内容是文本内容还是html代码
客户端接收服务端的响应时,数据格式:xml
客户端接收服务器端的响应时,数据格式:XML
           * 服务器端:
               * 设置响应首部信息:"Content-Type"为"text/xml"
                   response.setContentType("text/xml;charset=utf-8");
               * 手动构建的xml格式数据
               * 数据来源于查询数据库,封装在javabean、List、Map和Array集合等
               * 如何将javabean、List、Map和Array集合内容转换成xml数据格式?

           * 客户端:
               * 使用XMLHttpRequest对象的responseXML属性:接收的格式是XML格式
               * 利用DOM解析XML格式数据