Ajax整合了JavaScript、xml、CSS等现有技术而成,全称为Asynchronous JavaScript And XML,即异步的 JavaScript和xml。它使用了JavaScript通过XMLHttpRequest对象异步发送请求到服务器,然后根据结果,使用JavaScript和CSS局部更新相应网页的任务过程,其中XML用来封装请求和响应数据,CSS用来美化网页样式。
 
 
Ajax的关键元素:
    JavaScript:Ajax技术的主要开发语言。
    DOM(文档对象模型):通过DOM属性或方法修改局部元素,实现页面局部刷新。
    CSS样式表:改变样式,美化页面效果,提升用户体验度。
    XMLHttpRequest对象(Ajax核心):以异步的方式在客户端与服务器之间传递数据。
 
 
XMLHttpRequest对象的常用方法和属性
    常用方法:
      open(method,url,asyncl):用于创建一个新的Http请求,并制定此请求的
      方法、URL、是否异步提交及验证信息true或false。
      send(String):发送请求到服务器。
            注意:String仅用于post方法,get方法为空或null
      abort();取消 当前请求。
      setRequestHeader():单独指定请求某个Http头。
      getResponseHeader():从响应中获取指定的Http头。
        getAllResponseHeaders():获取响应的所有Http头。
 
    常用属性:
      readyState:返回请求的当前状态。(readyState常用值是:0表示未初始化,
              1表示初始化,2表示发送数据,3表示数据传送中,4表示数据接收完毕)
      status:返回当前请求的Http状态码。(200表示正确返回,404表示找不到访问对象)
      responseText:以文本形式获取响应值。
      reponseXML:以XML形式获取响应值,并且解析成DOM对象返回。
      statusText:返回请求的响应行代码。
      onreadystatechange:设置回调函数。
 
 
Ajax的使用步骤:
      1.创建XMLHttpRequest对象,通过window.XMLHttpRequest的返回值判断
          XMLHttpRequest对象的方式。
      2.设置回调函数,通过onreadystatechange属性设置回调函数,函数需要自定义。
      3.初始化XMLHttpRequest组件。通过open()方法创建一个设置发送方式和请求路径
          的Http请求。
      4.发送请求。
 
 
发送get请求及处理文本方式响应:
      //1.创建XMLHttpRequest对象
      if(window.XMLHttpRequest){//返回时true时,说明是新版本IE或其他浏览器
        xmlHttpRequest=new XMLHttpRequest();
      }else{
        xmlHttpRequest=new ActiveXObject("Microsoft.XMLHTTP");
      }
      //2.设置回掉函数
      xmlHttpRequest.onreadystatechange=callBack;
      //3.初始化XMLHttpRequest组件
      xmlHttpRequest.open("GET",url,true);
      //4.发送请求
      xmlHttpRequest.send(null);//GET方法为空或null
      //回调函数callBack
      function callBack(){
      if( xmlHttpRequest.readyState==4&&xmlHttpRequest.status==200){
      var b=xmlHttpRequest.responseText;
      根据不同的返回类型处理向响应
        ..........
    }
  }
发送post请求及处理文本方式响应:
      //加粗部分是与get请求的区别
      //1.创建XMLHttpRequest对象
      if(window.XMLHttpRequest){//返回时true时,说明是新版本IE或其他浏览器
      xmlHttpRequest=new XMLHttpRequest();
      }else{
      //付过是IE5,IE6低版本的浏览器
      xmlHttpRequest=new ActiveXObject("Microsoft.XMLHTTP");
      }
      //2.设置回掉函数
      xmlHttpRequest.onreadystatechange=callBack;
      //3.初始化XMLHttpRequest组件
      xmlHttpRequest.open("POST",url,true);
      //请求头部信息的格式
      xmlHttpRequest.setRuquestHeader("Content-Type","application/x-www-form-urlencoded");
      //4.发送请求
      var userinfo="uname="+uname;//需要发送的数据信息
        xmlHttpRequest.send(userinfo);
 
 
发送GET请求及处理XML方式响应:
              在处理XML方式响应时,需要使用XMLHttpRequest对象的responseXML属性得到服务器端
          生成的XML文档,responseXML返回的并不是简单的字符串,是一个XmlDocument对象,因此要处理XML方式的响应,需要先了解如何使用XmlDocument          对象获取服务器端返回的数据信息。
 
XmlDocument的常用属性与方法:
      属性:
        attributes:当前节点的属性集合。
        childNodes:当前节点的所有子节点。
        firstChild:节点的第一个子节点。
      方法:
        getElementsByTagName():用来获取指定节点名的节点对象集合,参数为节点名
                                           称字符串。
         selectSingleNode():用来获取符合条件的第一个节点对象。
         selectNode():用来获取符合条件的节点对象集合。
 
          回调函数中处理XML响应的方法:
          function callBack(){
            if(xmlHttpRequest.readyState==4&&xmlHttpRequest.status==200){
            //获取服务器端返回的XML形式的文档对象
            //加黑部分是与文本响应方式的区别
              var dom=xmlHttpRequest.responseXML;
               if(dom){
                  //获取节点名为“username”的节点对象集合
                  var userNodes=dom.getElementsByName("username");
                  if(userNodes.length>0){
                  //获取该节点对象中的第一个子节点
                    var username=userNodes[0].firstChild.nodeValue;
                    document.getElementById("username").value=username;
}
}
}
}
一般都是jQuery与Ajax一起使用,原生用起来麻烦。

Ajaxa的原生使用方法的更多相关文章

  1. 使用python原生的方法实现发送email

    使用python原生的方法实现发送email import smtplib from email.mime.text import MIMEText from email.mime.multipart ...

  2. 原生js方法document.getElementsByClassName在ie8及其以下的兼容性问题

    document.getElementsByClassName在ie8及其以下浏览器的兼容性问题,在ie8及其以下浏览器中不能使用,针对这个问题,下面给出详细的解决方法,感兴趣的朋友可以参考下     ...

  3. AJAX的get和post请求原生编写方法

    var xhr=new XMLHttpRequest(); xhr.onreadystatechange=function(){ if(xhr.readyState===4){ if(xhr.stat ...

  4. javascript原生bind方法ie低版本兼容详解

    上一篇文章讲到了javascript原生的bind方法: http://www.cnblogs.com/liulangmao/p/3451669.html 这篇文章就在理解了原生bind方法的原理以后 ...

  5. Java安全之原生readObject方法解读

    Java安全之原生readObject方法解读 0x00 前言 在上篇文章分析shiro中,遇到了Shiro重写了ObjectInputStream的resolveClass导致的一些基于Invoke ...

  6. 常用原生JS方法总结(兼容性写法)

    经常会用到原生JS来写前端...但是原生JS的一些方法在适应各个浏览器的时候写法有的也不怎么一样的... 今天下班有点累... 就来总结一下简单的东西吧…… 备注:一下的方法都是包裹在一个EventU ...

  7. javascript原生bind方法详解

    bind()方法,是javascript原生的函数类的一个原型方法(即Function.prototype里的方法),不支持ie低版本. 基本格式: function.bind(obj1,obj2,o ...

  8. 几个原生js方法总结

    一.document.getElementById('emoji').addEventListener('click', function(e) { var emojiwrapper = docume ...

  9. 浏览器中的原生base64方法

    在web开发中,经常涉及到对文本.文件等进行base64编码处理,在之前的开发中,使用js-base64来进行处理,但其实浏览器已经原生包含了处理方法.性能更好,兼容性也更高. atob() - AS ...

随机推荐

  1. HTTP常用标准请求头字段

    常用标准请求头字段 Accept 设置接受的内容类型 Accept: text/plain Accept-Charset 设置接受的字符编码 Accept-Charset: utf-8 Accept- ...

  2. MIDL相关

    根据MIDL的语义, 指针总被认为是指向单一元素而不是数组.因此以上方法中只有串中的第一个字符被封送.为此,MIDL引入了[string]特性来说明传递的是一个字符串 http://www.cnblo ...

  3. 【281】◀▶ arcpy.mapping 常用类说明

    arcpy.mapping 教程入门 arcpy.mapping 指导原则 按字母顺序排序的 arcpy.mpping 类列表 按字母顺序排序的 arcpy.mpping 函数列表 按字母顺序排序的 ...

  4. 生成ssl脚本文件

    read -p "Enter your domain [www.example.com]: " DOMAIN echo "Create server key...&quo ...

  5. Android4.0+锁屏程序开发——设置锁屏页面篇

    [如何开发一个锁屏应用] 想要开发一个锁屏应用,似乎很难,其实并没有想象中那么难. 从本质上来说,锁屏界面也只是一个Activity而已,只是这个界面比较特殊,在我们点亮屏幕的时候,这个界面就会出现. ...

  6. Linux开机启动详解

    Linux开机启动程序详解 我们假设大家已经熟悉其它操作系统的引导过程,了解硬件的自检引导步骤,就只从Linux操作系统的引导加载程序(对个人电脑而言通常是LILO)开始,介绍Linux开机引导的步骤 ...

  7. Servlet接口应用(开发servlet三种方式)

    参见 文库/java/javaEE全新学习教程2.2节 1.通过URL调用 2通过提交表单 3超链接 4 javascript写一个函数,调用这个函数 1,首先在工程的WebRoot文件夹下建立一个j ...

  8. MyBatis—实现关联表查询

    一.一对一关联 1.1.提出需求 根据班级id查询班级信息(带老师的信息) 1.2.创建表和数据 创建一张教师表和班级表,这里我们假设一个老师只负责教一个班,那么老师和班级之间的关系就是一种一对一的关 ...

  9. dpdk中kni模块

    一,什么是kni,为什么要有kni Kni(Kernel NIC Interface)内核网卡接口,是DPDK允许用户态和内核态交换报文的解决方案,模拟了一个虚拟的网口,提供dpdk的应用程序和lin ...

  10. linux ssh使用深度解析(key登录详解)

    linux ssh使用深度解析(key登录详解) SSH全称Secure SHell,顾名思义就是非常安全的shell的意思,SSH协议是IETF(Internet Engineering Task ...