`

Ajax操作工具函数总结

阅读更多
1.ajaxUtil.js
      //定义并创建Ajax核心对象XMLHttpRequest
   var xmlHttp ;
   function createXMLHttpRequestObject() 
   {
	  try{
	    xmlHttp = new XMLHttpRequest();
	   }catch(e){
	    
	    var XmlHttpVersions = new Array("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<XmlHttpVersions.length && !xmlHttp; i++){
	        try { 
	          xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
	        }catch (e) {}
	     }
	  }
	
	  if (!xmlHttp) alert("Error creating the XMLHttpRequest object");
	  else  return xmlHttp;
     
 }
 
 
  //装载字符串,将字符串组成XML的形式返回 
 function createXML(xmlString)
 { 
    var xmldoc;
    try{ 
        xmldoc = new ActiveXObject("Microsoft.XMLDOM");
        if(!xmldoc) xmldoc = new ActiveXObject("MSXML2.DOMDocument.3.0");
     } catch(e){}
     
    if(!xmldoc) {
        return null;
    }else {
        xmldoc.async = "false";
        xmldoc.loadXML(xmlString);
        if(xmldoc.parseError.errorCode == 0) return xmldoc;
        else  return null;
        
    }
}
 



2. ajaxDemo.jsp

<%@ page contentType="text/html;charset=GBK" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<% request.setAttribute("path",request.getContextPath()); %>
<html>
<head>
<title>jquery ajax demo</title>
<link rel="stylesheet" href="${path}/css/nrmcs.css">
<script src="${path}/js/jquery.js"></script>
<script src="${path}/js/ajaxUtil.js"></script>
<script>

  /************ajax的jquery版本示例**************************/
   /*
   function check()
   { 
     var user=document.all.userName.value;
     var pass=document.all.password.value;
    
    $.ajax({
       url:"${path}/map/checkUser.action",
       type:"post",
       data:"userName="+user+"&password="+pass,
       success:handleResponse,
       async: false  //异步或同步,默认为true同步,false为异步
       
     });
     
     alert("next"); //如果为异步,则必须等到handleResponse函数执行完毕后,才会执行alert("next");
  
   }
   
   
   function handleResponse(data){
  
            //alert(data);
            var xmlDoc= createXML(data); //将xml字符串转换为xml对象
		    var nodes=xmlDoc.selectNodes("datas/data");
		    var tab=document.getElementById("userTable");
		    var row,cell;
		    var node;
		    var id,name,pass;
		    for(var i=0;i<nodes.length;i++)
		    {
		       node=nodes[i];
		       id=node.selectSingleNode("id").text;
		       name=node.selectSingleNode("name").text;
		       pass=node.selectSingleNode("password").text;
		      
		      row=tab.insertRow();
		      cell=row.insertCell();
		      cell.innerHTML=id;
		      
		      cell=row.insertCell();
		      cell.innerHTML=name;
		      
		      cell=row.insertCell();
		      cell.innerHTML=pass;
       
            }
        
   } */
   
  
   /************ajax的原生版本示例**************************/
   
  
   function check()
   { 
     var user=document.all.userName.value;
     var pass=document.all.password.value;
    
    
    createXMLHttpRequestObject();
    xmlHttp.open("POST","${path}/map/checkUser.action",false); //false为同步,true为异步
    xmlHttp.onreadystatechange=handleResponse;
    xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    xmlHttp.send("userName="+user+"&password="+pass);
   
   // alert("next"); //同步必须等到前面代码执行完后才能执行这一句
   
   }
   
   
   function handleResponseForIE(){
  
     if(xmlHttp.readyState==4){
        if(xmlHttp.status==200){    
            //alert(xmlHttp.responseText);
            var xmlDoc= createXML(xmlHttp.responseText); //将xml字符串转换为xml对象
		    var nodes=xmlDoc.selectNodes("datas/data");
		    var tab=document.getElementById("userTable");
		    var row,cell;
		    var node;
		    var id,name,pass;
		    for(var i=0;i<nodes.length;i++)
		    {
		       node=nodes[i];
		       id=node.selectSingleNode("id").text;
		       name=node.selectSingleNode("name").text;
		       pass=node.selectSingleNode("password").text;
		      
		       row=tab.insertRow();
		       cell=row.insertCell();
		       cell.innerHTML=id;
		      
		       cell=row.insertCell();
		       cell.innerHTML=name;
		      
		       cell=row.insertCell();
		       cell.innerHTML=pass;
       
            }
        }
    }
     
   }
   
   
    function handleResponse(){
     if(xmlHttp.readyState==4){
        if(xmlHttp.status==200){    
            alert(xmlHttp.responseText);
            var xmlDoc= createXML(xmlHttp.responseText); //将xml字符串转换为xml对象
		    var nodes=xmlDoc.getElementsByTagName("data");
		    for(var i=0;i<nodes.length;i++)
		    {
		      var node=nodes[i];
		      var id=node.getElementsByTagName("id")[0].text;
		      var name=node.getElementsByTagName("name")[0].text;
		      var password=node.getElementsByTagName("password")[0].text;
		      
		       alert(id+" "+name+" "+password);
		    
		    }
        }
    }
     
   }
   
   
   
  /*$(document).ready(
    function(){
    
    //$("#userTable").hide();
   // $("#userTable").show();
    
    var iWidth = document.body.clientWidth; 
	var iHeight = document.body.clientHeight;
  
    var div=document.createElement("div");
    document.body.appendChild(div);
    div.id="myDiv";
    div.style.position="absolute";
    div.style.border="1px solid #a3bad9";
    div.style.left=iWidth/2+298;
    div.style.top=iHeight/2+204;
    div.style.width="200";
    div.style.height="100";
    div.style.backgroundColor="#FFFFCC";
    
    var span=document.createElement("div");
    span.style.textAlign="right";
    span.innerHTML="<a href='javascript:closeDiv()'>×&nbsp;</a>";
    div.appendChild(span);
    
    
    }
  
  
  
  ); */
  
  function closeDiv(){
    document.getElementById("myDiv").style.display="none";
  }
</script>
</head>
<body>
  userName:<input type="text"  name="userName"><br>
  password:<input type="password" name="password"><br>
  <input type="submit" value="检查" onclick="check()">
  <table id="userTable" border="1" width="50%" cellspacing="0" cellpadding="0">
  </table>
 
</body>
</html>
分享到:
评论

相关推荐

    basePackage:实际操作中总结出的js函数库,大大方便常见的js开发

    basePackage -js开发常用...ajax: ajax操作包括get post等方法 css: css的设置和获取 dom: dom元素的获取,事件的绑定等等 drag: 使页面中的元素可拖动 traverse: dom元素的遍历 url: url参数的获取 util: 常用的工具库

    最新Python3.5零基础+高级+完整项目(28周全)培训视频学习资料

    ajax操作-伪ajax(iframe) ajax操作-时机选择 文件上传(3种方式)-1 文件上传-时机选择及预览-2 图片验证码 KindEditor基本使用和文件操作 作业 第25周 今日内容概要 博客系统示例预览 组合搜索组件 JSONP跨域...

    Java基础知识点总结.docx

    函数 15 方法重载(Overloadjing)与重写(Overriding) 16 数组 17 总结 18 三、 常见关键字 20 四、 面向对象★★★★★ 21 五、 封装(面向对象特征之一)★★★★ 23 六、 继承(面向对象特征之一)★★★★ 25 ...

    python入门到高级全栈工程师培训 第3期 附课件代码

    08 数学意义的函数与python中的函数 09 为何要有函数 10 函数返回值 11 可变长参数 第15章 01 上节课复习 02 全局变量与局部变量 03 风湿理论之函数即变量 04 函数递归 05 函数递归补充 第16章 01 上节课回顾 02...

    JavaScript王者归来part.1 总数2

     3.4 调试工具--提升开发效率的利器   3.5 定位代码和调用堆栈   3.6 浏览器捕获异常   3.7 总结   第二部分 JavaScript核心  第4章 语言结构  4.1 JavaScript的基本文法   4.2 常量和变量   4.3 ...

    asp.net知识库

    Oracle中PL/SQL单行函数和组函数详解 mssql+oracle Oracle编程的编码规范及命名规则 Oracle数据库字典介绍 0RACLE的字段类型 事务 CMT DEMO(容器管理事务演示) 事务隔离性的一些基础知识 在组件之间实现事务和异步...

    亮剑.NET深入体验与实战精要2

    本书既考虑到实际开发中经常遇到的困惑和难题,也分析了解决问题的思路和方法,更总结出项目开发中不可或缺的技术点及思想。读者可以在欣赏一个个有趣例子的过程中,不知不觉具备开发真正商业项目的能力。 本书集...

    亮剑.NET深入体验与实战精要3

    本书既考虑到实际开发中经常遇到的困惑和难题,也分析了解决问题的思路和方法,更总结出项目开发中不可或缺的技术点及思想。读者可以在欣赏一个个有趣例子的过程中,不知不觉具备开发真正商业项目的能力。 本书集...

    Ext Js权威指南(.zip.001

    3.4 调试工具的总结 / 84 3.5 调试技巧 / 85 3.6 本章小结 / 89 第4章 ext js的基础架构 / 90 4.1 ext js框架的命名空间:ext / 90 4.1.1 概述 / 90 4.1.2 apply和applyif方法 / 90 4.1.3 不推荐的extend...

    《iPhone开发实战》.(Christopher Allen).pdf

    5.3.4 iui搜索支持ajax68 5.3.5 iui面板和行68 5.3.6 iui按钮70 5.3.7 iui属性70 5.4 创建iui后端71 5.5 其他iui技巧72 5.5.1 组织代码72 5.5.2 改善数据代码清单73 5.5.3 压缩iui74 5.5.4 选择...

    【尚硅谷】徐靖博 最新电商项目实战(完结)

    o* g3 S 30.03 sku功能跳转 31.04 客户端js函数中的el表达式 32.05 异步加载spu列表数据# M& R, \7 \3 y z- w+ a% }( g" ^ 33.06 用复选框操作属性列表显示 D+ k( T; J. J" `2 u 34.07 属性参数的提交) O0 o, s0 X ...

    Python入门网络爬虫之精华版

    首先列举一下本人总结的相关文章,这些覆盖了入门网络爬虫需要的基本概念和技巧:宁哥的小站-网络爬虫 当我们在浏览器中输入一个url后回车,后台会发生什么?比如说你输入http://www.lining0806.com/,你就会看到宁...

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

    Parser是一种检查XML文档是否遵循DTD规范的工具软件。 XML的parser发展为两类:一种是"非确认类paeser",只检测文档是否遵守XML语法规则,是否用元素标识建立了文档树。另一种是"确认类paeser",它不但检测文档语法...

    Java学习笔记-个人整理的

    {1.3.1}总结}{23}{subsection.1.3.1} {1.4}数据类型}{23}{section.1.4} {1.4.1}整数与浮点数}{23}{subsection.1.4.1} {1.4.1.1}浮点数原理}{24}{subsubsection.1.4.1.1} {1.4.2}格式化输出浮点数}{24}{...

Global site tag (gtag.js) - Google Analytics