`

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>
分享到:
评论

相关推荐

    Ajax Pro2(可以直接让你在页面函数上访问CS文件中的类,而且操作极其简单)

    Ajax Pro 2 是一个强大的工具,它为.NET开发人员提供了更简单、更高效的途径来利用Ajax技术。通过直接在JavaScript中调用服务器端类,它简化了开发流程,提高了性能,并且增强了用户体验。配合`Web.Config`配置文件...

    Ajax工具包

    Ajax工具包通常会提供异步操作的接口,如设置回调函数,以便在请求完成后执行特定任务,或者使用Promise或async/await进行更优雅的异步控制流。 7. **缓存策略** 对于频繁请求的数据,工具包可能包含缓存策略,...

    asp.net ajax开发工具包

    总结来说,ASP.NET AJAX开发工具包是一个强大的框架,它简化了在ASP.NET环境中构建富互联网应用的过程,通过提供一系列的控件和服务接口,让开发者能够更加专注于业务逻辑,而不是底层的通信细节。这个工具包结合...

    使用prototype简化Ajax操作

    Prototype是一个强大的JavaScript库,它为开发者提供了许多便利的工具,其中包括对Ajax操作的简化。在"使用prototype简化Ajax操作"这个主题中,我们将深入探讨Prototype库如何使Ajax变得更加简单易用。 首先,...

    SSH+jQuery+json 实现的Ajax操作,绝对精华,代码简练清晰,绝对能看明白

    这个压缩包中的资源,"SSH+jQuery+json 实现的Ajax操作,绝对精华,代码简练清晰,绝对能看明白",显然提供了一个使用这些技术实现Ajax级联操作的实例。下面将详细介绍这些技术及其在Ajax操作中的应用。 **SSH ...

    在vb.net (asp.net)中后台引用ajax函数的方法

    本文将详细介绍如何在后台引用AJAX函数,以VS2010 (VB.NET)作为开发工具,SQL Server 2000作为数据库进行演示。 首先,我们需要在项目中引入AJAX库。步骤S1涉及在项目中添加对`ajax.dll`的引用。这可以通过右键点击...

    已封装Ajax操作类

    总结来说,这个“已封装Ajax操作类”是为了解决JavaScript中使用原生XMLHttpRequest对象进行Ajax请求的复杂性,提供了一个简洁、易用的接口,使得开发者能够更专注于业务逻辑,而不是底层通信的实现。通过学习和使用...

    超使用的AJAX工具包

    10. **请求预处理和后处理**:工具包可能提供钩子函数,允许在请求发送前或响应返回后执行自定义逻辑,如数据验证、权限检查等。 **应用场景** 1. **动态加载内容**:比如分页加载、无限滚动,只更新页面的一部分...

    web ajax 的使用 js封装

    8. "Util.js":这是一个可能包含实用函数的JavaScript文件,可能包括对AJAX操作的封装,是实际开发中常见的工具类库。 综上所述,学习和掌握AJAX的使用以及JavaScript的类库封装,不仅需要理解JavaScript的基本概念...

    dom ajax 操作的基本类库

    总结来说,这个“DOM Ajax操作的基本类库”是一个强大的工具,它将DOM操作和Ajax通信集成在一起,通过统一的API解决了跨浏览器的兼容性问题,提高了开发效率,并降低了维护成本。无论是在现代Web应用还是传统项目中...

    ajax构建工具箱指南 源码.rar

    **Ajax 构建工具箱指南源码解析** ...总结,Ajax构建工具箱提供了全面的示例和源码,是学习和实践Ajax技术的宝贵资源。通过深入学习和实践,开发者可以提升Web应用的用户体验,实现更加智能和高效的前端交互。

    js操作Cookie子键+Jquery调用Ajax方法执行后台操作

    总结来说,JS操作Cookie的子键和jQuery调用Ajax方法是Web开发中常见的技术,它们使得我们能够高效地处理用户交互和数据交换。通过理解并熟练运用这些技巧,你可以创建更加动态和响应式的Web应用。在实际项目中,记得...

    Ext.Ajax.request2.x实现同步请求

    总结来说,`Ext.Ajax.request`在EXTJS中是进行Ajax通信的关键工具,通过调整其配置参数,我们可以实现同步请求。尽管同步请求有其应用场景,但应谨慎使用,以避免对用户体验造成负面影响。在EXTJS 2.x这样的老版本中...

    dhtmlxGrid Ajax表格、日历、工具条控件

    Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下更新部分网页的技术,这使得dhtmlxGrid能够在不打断用户操作的情况下获取并展示数据,极大地提高了交互性。 **Ajax应用** 在dhtmlx...

    常用JavaScript函数 16 - 30(自我总结)

    这篇自我总结涵盖了JavaScript函数的16到30个常用知识点,旨在帮助开发者更好地理解和应用这些功能强大的工具。 1. **数组操作** - `slice()`:用于从原数组中提取一个子数组并返回,不会改变原数组。 - `splice...

    SSI中使用Ajax进行操作的例子(prototype.js)

    Prototype.js库提供了许多方便的函数,如Ajax.Request和Ajax.Updater,它们是执行Ajax请求的核心工具。在添加数据的场景中,我们可以创建一个Ajax.Request对象,指定URL(通常是服务器处理数据的端点)、HTTP方法...

    ajaxTest 实用简单封装

    总结,AjaxTest的实用简单封装主要涵盖了Ajax的基本操作,包括GET和POST请求,以及同步和异步提交方式。通过封装这些功能,开发者可以快速地在ASP.NET环境中构建交互性强、用户体验良好的网页应用。

    数据操作后,页面alert提示例子2-ajax实现

    总结来说,"数据操作后,页面alert提示例子2-ajax实现"是关于利用Ajax进行后台数据操作,并通过JavaScript处理服务器响应,以`alert()`显示操作结果的实例。通过理解和应用这样的技术,开发者可以提高网站的用户体验...

    asp.net验证码ajax

    ASP.NET 是微软开发的一款用于构建Web应用程序的框架,它提供了丰富的功能和工具,使得开发者能够高效地构建动态、交互式的网站。在ASP.NET 2.0版本中,引入了Ajax技术,大大提升了用户体验,因为Ajax允许页面的部分...

Global site tag (gtag.js) - Google Analytics