Ajax使用的五步法
<script type="text/javascript">
          //用于保存XMLHttpRequest对象的变量,由于整个过程中必须使用同一个XMLHttpRequest对象,所以要定义成全局的
          var xmlhttp;
          function submit()
          {
              //第一步:创建XMLHttpRequest对象
              if(window.XMLHttpRequest){
                  //对于IE7,IE8,firefox,Mozilla,Safari浏览器都能满足这个条件
                  xmlhttp=new XMLHttpRequest();
           //这段代码是为了解决某些版本的mozilla浏览器在XMLHttpRequest对象接收服务器返回的xml数据会出问题的一个bug而添
                 //加的,目前来说属于一个小众事件,所以只需要知道这是个修复小众bug的代码段
                  if(xmlhttp.overrideMimeType){
                      xmlhttp.overrideMimeType("text/xml");
                  }
              }else if(window.ActiveXObject){
                  //上面的浏览器也能满足这个条件,但是上面的自带了XMLHttpRequest对象,所以没有必要再利用这个来创建。
                  //IE6和IE5的判断条件
  //由于不同浏览器所支持的Activex版本不同,为了对不同版本的浏览器都能定义出XMLHttpRequest对象,创建的时候遍历
所有版本的Activex控件版本,总有一个当前浏览器支持
                  var activexName=['MSXML2.XMLHTTP.6.0','MSXML2.XMLHTTP.5.0',
                'MSXML2.XMLHTTP.4.0','MSXML2.XMLHTTP.3.0','MSXML2.XMLHTTP','Microsoft.XMLHTTP'];
                  for(var i=0;i<activexName.length;i++){
                      try{
                          xmlhttp=new ActiveXObject();
                          break;
                      }
                      catch(e){  
                      }
                  }          
              }
              //alert(xmlhttp);
              if(xmlhttp==undefined||xmlhttp==null){
                  alert("您的浏览器太老,请更换版本。");
                  return;
              }
               
              //第二部:注册回调方法,当服务器处理结束返回数据以后利用回调方法实现局部的页面刷新数据
     //这个回调方法实际上在每次XMLHttpRequest对象的readyState属性的值发生变化的时候都会被调用,但是我们实际上只关心
              //readyState==4(与服务器交互结束)这一种情况。
              xmlhttp.onreadystatechange=callback;
              //获得文本框输入内容
              var userName=document.getElementById("UserName").value;
              /*这个是使用GET方式的设置方式
----------------------------------------------------------------------------------------------------------------------
              //第三步:设置和服务器交互的相应参数
              //制定servlet页面是AJAX,由于使用的是GET方法,所以参数要自己拼出来,ture表示是“异步”
              xmlhttp.open("GET","AJAX?name="+userName,true);
               
              //第四步:设置向服务器发送的数据,启动和服务器端交互
              xmlhttp.send(null);
              //由于我们使用的是“GET”,所有数据斗拼在url中,这里的参数是null,如果使用“Post”就必须有参数了
----------------------------------------------------------------------------------------------------------------------
              */
             //使用post方式
             //第三步:设置和服务器交互的相应参数
             xmlhttp.open("POST","AJAX",true);
             //使用POST方式需要多加的代码,[url=http://www.woyinwose2.com.cn]我淫我色[/url]手动添加一个Http请求的头信息。这段代码的工作本来是由浏览器帮助完成的
             xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
             //第四步:设置向服务器发送的数据,启动和服务器端交互
              xmlhttp.send("name="+ userName);
 
          }
          function callback(){
              //alert('------------');
              //第五步:判断和服务器交互是否完成,还要判断服务器端是否正确返回数据
              if(xmlhttp.readyState==4){                
                  //表示和服务器的交互已经完成
                  if(xmlhttp.status==200){
                      //服务器端响应代码是200,正确返回了数据
                      //纯文本数据的接受方法
                      var message = xmlhttp.responseText;
                      //xml对应的DOM对象接受方法,
                      //[url=http://www.yuputuan.org]玉蒲团[/url]接受这个需要服务器端设置content-type为text/xml
                      //var docXml = xmlhttp.responseXML;
                      //把从服务器端返回的数据动态填充到div标签中
                      //记忆向div中填充文本的方法
                      var div = document.getElementById("message");
                      div.innerHTML = message;
 
                  }
              }
          }
        </script>

Ajax使用的五步法的更多相关文章

  1. AJAX核心--XMLHttpRequest五步法

    引言: AJAX=异步Javascript + XML,AJAX是一种用于创建高速动态网页的技术. 开门见山: 解读:AJAX使用XHTML和CSS为网页表示.DOM动态显示和交互,XML进行数据交换 ...

  2. ETL构建数据仓库五步法

    原文:http://huangy82.blog.163.com/blog/static/49069827200923034638409/ ETL构建企业级数据仓库五步法 在数据仓库构建中,ETL贯穿于 ...

  3. 鲲鹏性能优化十板斧——鲲鹏处理器NUMA简介与性能调优五步法

    TaiShan特战队六月底成立,至今百日有余,恰逢1024程序员节,遂整理此文,献礼致敬!希望能为广大在鲲鹏处理器上开发软件.性能调优的程序员们,提供一点帮助.从今天开始,将陆续推出性能调优专题文章. ...

  4. 鲲鹏性能优化十板斧之前言 | 鲲鹏处理器NUMA简介与性能调优五步法

    鲲鹏处理器NUMA简介 随着现代社会信息化.智能化的飞速发展,越来越多的设备接入互联网.物联网.车联网,从而催生了庞大的计算需求.但是功耗墙问题以功耗和冷却两大限制极大的影响了单核算力的发展.为了满足 ...

  5. ajax readyState的五种状态详解

    通过ajax的readyState的值,我们可以知道当前的这个http请求处于什么状态.对于web的调试是比较重要的. readyState 状态说明: (0)未初始化 此阶段确认XMLHttpReq ...

  6. 原生ajax请求的五个步骤

    //第一步,创建XMLHttpRequest对象 var xmlHttp = new XMLHttpRequest(); function CommentAll() { //第二步,注册回调函数 xm ...

  7. AJAX应用的五个步骤

    1.建立xmlHttpRequest对象 if(window.XMLHttpRequest) {    xmlHttp = new XMLHttpRequest();    if(xmlHttp.ov ...

  8. 框架基础:ajax设计方案(五)--- 集成promise规范,更优雅的书写代码

    距离上一篇博客书写,又过去了大概几个月了,这段时间暂时离开了这个行业,让大脑休息一下.一个人旅行,一个人休息,正好也去完成一个目标 --- 拥有自己的驾照.当然,也把自己晒的黑漆马虎的.不过这一段时间 ...

  9. jquery基础学习之AJAX篇(五)

    理解不深,只知道这么用 jquery 中ajax的请求方法 $.ajax({ url:‘http://...’, //请求网址 type:'GET', //请求方法 success:function( ...

随机推荐

  1. Boost - 从Coroutine2 到Fiber

    Boost - 从Coroutine2 到Fiber 协程引子 我开始一直搞不懂协程是什么,网上搜一搜,(尤其是Golang的goroutine)感觉从概念上听起来有点像线程池,尤其是类似Java的E ...

  2. MS SQL 数据库状态为SUSPECT(可疑)的处理方法

    原文出处:http://www.cnblogs.com/kerrycode/archive/2013/06/10/3131360.html 当SQL SERVER数据库状态为质疑(SUSPECT)状态 ...

  3. redis(1)--redis3.2.8安装

    一.下载安装包 http://download.redis.io/releases/  选择对应的版本 二.copy到对应的虚拟机上 运行 tar -zxvf  redis-3.2.8 进行解压 更改 ...

  4. 5.LNMP(Linux + Nginx + MySQL + PHP)环境安装

    1.安装Nginx: yum install yum-priorities -y wget http://nginx.org/packages/centos/7/noarch/RPMS/nginx-r ...

  5. K8s快速入门

    在k8s中所有的内容都抽象为资源,资源实例化之后,叫做对象.一般使用yaml格式的文件来创建符合我们预期期望的pod,这样的yaml文件我们一般称为资源清单 资源清单的格式: apiVersion: ...

  6. Spring-boot中@ConfigurationProperties,@Value,@PropertySource

    1.利用@ConfigurationProperties获取配置的值,@ConfigurationProperties是springboot提供的基于安全类型的配置放置. application.pr ...

  7. java 深度复制与浅复制 copyOf、arraycopy、copyOfRange

    1.copyOf 原型:public static <T> T[] copyOf(T[] original, int newLength) original:原数组 newLength:要 ...

  8. 程序配置的原则和实践以及 Spring Boot 支持方式

    原则 软件需要在不同的环境中部署,代码是保持不变的,但是不同的运行环境存在差异,所以需要使用配置适应不同的环境.比如: 数据库,Redis,以及其他 后端服务 的配置: 第三方服务的证书,如 oAut ...

  9. 在create-react-app里使用ant design

    使用create-react-app创建的项目,要使用ant design. 1.首先进入项目根目录,yarn add antd. 2.在App.css引入 样式文件,@import '~antd/d ...

  10. UniRX简述

    UniRX:是一个Unit3D的编程框架,专注于解决异步逻辑,使得异步逻辑的实现更加简单优雅. 例如:实现“只处理第一次鼠标点击事件”: Observable.EveryUpdate() .Where ...