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. 渐进反馈式搜索技术助力运维工程师——Linux命令高效检索

    日常生活工作中,我们通过搜索引擎查询相关资料时,经常遇到不知如何指定准确关键词的情况,仅仅根据指定大概范围的关键词时,搜索结果往往不能尽如人意. <信息导航>APP最新版本(Ver 1.1 ...

  2. AES/CBC/PKCS7Padding加密方式

    在网上找了大半天资料,终于找到一个可以用的 public static class AES { // 算法名称 final static String KEY_ALGORITHM = "AE ...

  3. JS sort() 方法

    如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序.要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较. array.s ...

  4. twisted的task之cooperator和scrapy的parallel()函数

    def handle_spider_output(self, result, request, response, spider): if not result: return defer_succe ...

  5. JS写一个简单日历

    JS写一个日历,配合jQuery操作DOM <!DOCTYPE html> <html> <head> <meta charset="UTF-8&q ...

  6. vue源码逐行注释分析+40多m的vue源码程序流程图思维导图 (diff部分待后续更新)

    vue源码业余时间差不多看了一年,以前在网上找帖子,发现很多帖子很零散,都是一部分一部分说,断章的很多,所以自己下定决定一行行看,经过自己坚持与努力,现在基本看完了,差ddf那部分,因为考虑到自己要换 ...

  7. 云栖大会day2总结 上午

    第二天上午主要是参与了开发者专场 上 09:00-09:40 线上线下融合时代的工程师成长 李佩 饿了么高级算法总监 09:40-10:20 如何统一阿里巴巴代码规范:探寻工程师文化之路 玄坛 阿里巴 ...

  8. Oracle使用学习笔记(二)_Sql语句

    一.Sql语句的分类 数据操作语言,简称DML(data manipulation language),如增加,删除,修改,查询数据等 数据定义语言,简称DDL(data defination lan ...

  9. 爬了招聘网站之后,总结Python学习的几点建议

    来源商业新知网,原标题::爬了招聘网站之后,给你几点学习Python的建议 Python语言相关的岗位非常多,有运维,有自动化测试,有后端开发,有机器学习,如果想要快速上手,并且有不错的就业,那就推荐 ...

  10. VMware要不要装在固态SSD上,虚拟机系统文件要不要放固态SSD上,虚拟机伤不伤固态SSD

    先说结论:VMware建议装在固态上运行快,系统文件最好放在机械硬盘上(有钱除外),虚拟机会伤固态. 今天在学淘淘商城中的搜索项目,克隆了一个虚拟机,这个虚拟机开机贼慢,令人无法忍受,我觉得我再也受不 ...