菜单导航

零基础学习AJAX之AJAX的简介和基础

作者: 精装之家 来源: 精装之家 发布时间: 2019年10月10日 04:10:41

本节简介(异步链接服务器对象)XMLHTTPRequest以及AJAX的简介。

AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML)。 AJAX有四个方面的好处:1.即减轻了服务器的负担。2带来了更好的用户体验。3.基于标准被广泛的支持。4.拥有更好的页面呈现和数据分离。

技术名称 技术说明
javascript javascript是通用的脚本语言,AJAX是用javascript编写的
css 用户界面的样式通过css来修改
DOM DOM通过javascript修改DOM,ajax可以在运行时改变用户界面,或者局部更新页面中的某个节点。
XMLHttpRequest XMLHttpRequest对象 XMLHttpRequest对象允许web程序员从web服务器以后台的方式获取数据。数据的个数通常是XML或者是文本。

从上面我们看出,javascript就想胶水一样将各个部分粘贴在一起,例如通过javascript操作BOM改变刷新用户界面,通过修改className来改变css样式风格

1.异步对象连接服务器

不严谨的说,ajax是一个简单的多线程,它能够是用户在前台多种操作而不间断。ajax异步交互在后台默默的工作着 在web中异步访问是通过XMLHttpRequest对象来实现的,该对象最早是在ie5被作为activeX控件引入的。随后各个浏览器纷纷支持该异步对象,首先必须创建对象。代码如下:

复制代码 代码如下:


    var xmlHttp;
            function createXMLHrrpRequest() {
                if (window.ActiveXObject)
                    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
                else if (window.XMLHttpRequest)
                    xmlHttp = new XMLHttpRequest();
            }

该对象是先创建了一个全局变量xmlHttp,留以后函数中使用。另外创建异步对象函数createXMLHrrpRequest()

该过程用到了if语句方法,如果是IE采用window.ActiveXobject方法,如果不是,则用XMLHttpRequest方法创建函数。

在创建完异步对象后,自然是使用该对象连接服务器,该对象有一系列十分有用的属性和方法。

属性/方法 说明
abort() 取消请求
getAllResponseHeaders() 获取指定的Http头
open(method,url) 创建请求,method指定请求类型,GET POST
send() 发送请求
setRequestHeader() 指定请求的http头
onreadystatechange 发生任何状态变化时的事件控制对象
readyState 

请求的状态

0为尚未初始化

1为正在发送请求

2为请求完成

3为请求成功,正接收数据。

4为接收数据成功

responseText 服务器返回文本
responseXML 服务器返回xml
status 
服务器返回的http请求响应值,常用的有

200表示请求成功

202表示请求被接收,但处理未完成

400表示错误的请求

404表示资源未找到

500表示内部服务器错误,如aspx代码错误

创建完XMLHttpRequest对象后首先利用open()方法建立一个请求,并向服务器发送,该方法的完整表示式如下:

open(methond,url,asynchronous,user,password)
其中,method表示请求的类型,通长为GET,POST。

url即请求的地址,可以是绝对地址,也可以是相对地址。

asynchronous是一个布尔值,表示是否为异步请求,默认值为异步请求true。

user、password分别为可选的用户名、密码。

创建了异步对象后,要建立一个到服务器的请求可使用如下代码:

xmlHttp.open("GET","1-1.aspx",true);
以上代码用get方法请求的相对地址为9-1.aspx的页面,方式是异步的。在发出了请求后便需要请求的状态readyState属性来判断请求的情况,如果该属性变化了,就会触发onreadystatechange事件,因此通常的代码如下:

复制代码 代码如下:


<script type="text/javascript">
            xmlHttp.onRecorderStateChange = function(){
                if(xmlHttp.readyState == 4)
                //执行相关代码
            }
        </script>