Ajax(基础运用)

1.什么是Ajax?

Ajax是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术

Ajax的全称为Asynchronous javaScript and XML,即异步javaScript+XML,他并不是新的编程语言,而是几种原有的技术结合体

2.Ajax是由哪几种技术的结合体?

    1.HTML/XHTML—-主要的内容表示语言

      2.CSS—-为XHTML提供文本格式定义

     3.DOM—对已经加载的页面进行动态更新

   4.XSLT—-将XML转换成XHTML(用CSS修饰样式)

   5.XMLHttp—-用xmlHttpRequest来和服务器进行异步通信,是主要的通信代理

   6.javaScript—-用来编写Ajax引擎的脚本语言

  实际上,在Ajax解决方案中这些技术都是可用的,不过只是三种必须的:HTML/XHTML,DOM以及javaScript

3.XMLHttpRequest对象

  当数据异步与服务器进行交换时,需要XMLhttpRequest对象来异步交换,XMLHttpRequest对象的主要属性有:

  onreadystatechange—每次状态改变所触发事件的处理程序(俗称回调函数)

  responseText—从服务器进程返回数据的字符串形式

  responseXML—从服务器上进程返回的Dom兼容的文档数据对象

  status—从服务器上返回的数字代码,如404(未不到),200(正常)什么的。

  status Text—伴随状态码的字符串信息

   readyState—对象状态值,对象状态值有以下:

   0-(未初始化)还没有调send()方法

   1-(载入)已调用send()方法,正在发送请求

   2-(载入完成)send()方法执行完成

   3-(交互)正在解析相应内容

   4-(完成)响应内容解析完成,可以在客户端调用了

对于readyState的状态值,其中“0”状态是在定义后自动具有的状态值,而对于成功访问的状态(得到信息)我们大多数采用“4”来进行判断

 

Ajax的核心就是javaScript对象XmlHttpRequest,这个对象为服务器发送请求和解析响应提供了流畅的接口,XmlHttpRequest可以使用javaScript向服务器提出请求并处理响应,为不堵塞用户

 

XMLHttpRequest对象用法

          XMLHttpRequest对象有两个方法: open和send

   open(method,url,async):规定请求的类型,URL以及是否异步处理请求

   menthod:请求的类型:get或者post

   url:文件在服务器上的位置

   async:true(异步)或者false(同步)…… 一般这个可以省略的比如:open(“post”,“/save”)默认为true;

    send(String)将请求发送到服务器

    String: 仅用于POST请求

  对于open方法,有几点需要注意:

    1.URL是相当于当前页面的路径,也可以似乎用绝对路径

    2.open方法不会向服务器发送真正请求,它相当于初始化请求准备发送

    3.只能向同一个域中使用相同协议和端口的URL发送请求,否则会因为安全报错

真正能够向服务器发送请求需要调用send方法,并仅在POST请求可以传输参数,不需要则发送null,在调用send方法之后请求被发往服务器。

请求发往服务器,服务器根据请求生成响应(Response),传回给XHP对象,在收到响应后相应数据会填充到XHP对象的属性,有四个相关属性会被填充

     responseText—从服务器进程返回数据的字符串形式

     responseXML—从服务器进程返回的DOM兼容的文档数据对象

     status—从服务器上返回的数字发代码,如404和200

     syayus Text—伴随状态码的字符串信息

javaScript解析XML API

      名称                                                    类型                              作用

                  getELementsByTagName(name)    方法             返回当前元素中指定标记名的元素数组

      childNodes                                            属性             返回当前元素所有子元素的数组                              

      nodeValue            字符串    获取节点值:如果节点为元素,返会 null或undefind;如果节点为文本,返回文本值

      getAttribute                                           方法                返回元素的属性值,属性有name指定

AJAX的请求过程实列

   <script type=“text/javascript”>

       function ajaxFunction() {  

                    var xmlHttp=GetXmlHttpObject();//定义XMLHttpRequest对象   

              xmlHttp.open(“GET”,“****.ashx”,true)//设置请求方法,请求的目标页面,以及是否异步   

                 xmlHttp.setRequestHeader(“If-Modified-Since”,“0”);  

                      xmlHttp.onreadystatechange=function(){  //定义XMLHttpRequest对象的onreadystatechange属性        

             if(xmlHttp.readyState==4) {   //判断XMLHttpRequest对象的状态       

             if(xmlHttp.status==200){         

                document.myForm.time.value=xmlHttp.responseText;//通过XMLHttpRequest对象的responseText属性获取回传的数据   

    }    

      }  

 }  

     xmlHttp.send(null);//发送异步请求

} </script>

    

      

版权声明:本文为BoKeYuan666原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/BoKeYuan666/p/8321206.html