`
hrsvici412
  • 浏览: 75049 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JavaScript实践——AJAX封装工具

阅读更多

写了一个javascript程序,把ajax封装了在一个js文件中,供大家参考,请多多指教。

先声明几个变量:

var AJAXUtil = new Object();//工具对象
var xmlHttpRequest;//XMLHttpRequest对象
var sateChangeMethod; //方法变量

 创建xmlHttpRequest对象:

AJAXUtil.createXMLHttpRequest = function(){
	try {
		xmlHttpRequest = new XMLHttpRequest();
	}
	catch (trymicrosoft) {
		try {
			xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (othermicrosoft) {
			try {
				xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (failed) {
				xmlHttpRequest = false;
			}
		}
	}
}

 执行Get/Post的请求中传入的方法:

/*执行Get/Post的请求中传入的方法*/
AJAXUtil.handleStateChange = function(){
	if(xmlHttpRequest.readyState == 4){
		if(xmlHttpRequest.status == 200){
			//这里加上(),执行sateChangeMethod方法,这种方式叫做自调用
			//参考,http://xiayuanfeng.iteye.com/blog/304565
			sateChangeMethod();
		}
	}
}

 Get请求方式:

/* Get请求方式stateChange传入的业务方法,url地址,isAsynch是否异步*/
AJAXUtil.doRequstUsingGet = function(stateChange,url,isAsynch){
	sateChangeMethod = stateChange;
	AJAXUtil.createXMLHttpRequest();
	xmlHttpRequest.onreadystatechange = AJAXUtil.handleStateChange;
	xmlHttpRequest.open("GET",url,isAsynch);
	xmlHttpRequest.send(null);
}

 Post请求方式:

/* Post请求方式stateChange传入的业务方法,url地址,isAsynch是否异步,queryString参数串*/
AJAXUtil.doRequstUsingPost = function(stateChange,url,isAsynch,queryString){
	sateChangeMethod = stateChange;
	AJAXUtil.createXMLHttpRequest();
	xmlHttpRequest.onreadystatechange = AJAXUtil.handleStateChange;
	xmlHttpRequest.open("POST",url,isAsynch);
	xmlHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded;")
	xmlHttpRequest.send(queryString);
}

 测试代码:

String validateAction = contextPath + "/RF/ExchangePointValidate.html";
 
function $(id){
		return document.getElementById(id);
	}
	
	function keyupCheck(obj){
		obj.value = obj.value.replace(/[^\d.]/g,'');
		$("RFInput").value = obj.value*<%=rate%>;
		$("validateMessage").innerHTML = "";
		var url = "<%=validateAction%>?uid="+<%=id%>;
		AJAXUtil.doRequstUsingGet(stateChange,url,true);
	}
	
	function stateChange(){
		var xmlDoc = xmlHttpRequest.responseXML;
		var info = xmlDoc.getElementsByTagName('message');
		var leftMoney = info[0].firstChild.data;
		if(parseFloat(leftMoney) < parseFloat($("exchange").value)){
			$("validateMessage").innerHTML = "<font color='red'>兑换的金额大于账户余额!</font>";
			$("exchange").value="";
			$("RFInput").value="";
			$("exchange").focus();
			comFlag = false;
		}
	}
 
<font color="#ffcc00">&nbsp;<input id="exchange" type="text" style="width:80px" onkeyup="keyupCheck(this);" />&nbsp;元</font>
 

 

 

 

分享到:
评论
3 楼 hrsvici412 2009-02-22  
zhoujj303030 写道
这两天刚刚开始学习JS,想请教一下lz:“xmlHttpRequest.send(null)"是干什么用的啊?我看了很多js源码里面都有这句话!



send是发送http请求,有两中http请求方式,get和post。get请求的参数放在url上面,post请求通过send("参数")传递、你可以搜索这两者的区别。
2 楼 zhoujj303030 2009-02-22  
这两天刚刚开始学习JS,想请教一下lz:“xmlHttpRequest.send(null)"是干什么用的啊?我看了很多js源码里面都有这句话!
1 楼 hrsvici412 2009-02-20  
一开始在ie6上不行,XMLHttpRequest对象不能创建!

相关推荐

    JavaScript——Ajax

    在《JavaScript——Ajax》这篇博文中,可能涵盖了以下关键知识点: 1. **XMLHttpRequest对象**:这是Ajax的基础,通过创建XMLHttpRequest实例,我们可以向服务器发送GET或POST请求。例如: ```javascript var xhr...

    ASP.NET源码——ajax 插入 删除功能.zip

    此压缩包"ASP.NET源码——ajax 插入 删除功能.zip"提供了一套示例代码,演示了如何在ASP.NET应用中使用AJAX(Asynchronous JavaScript and XML)技术来实现数据的无刷新插入和删除功能。AJAX允许在不重新加载整个...

    使用jQuer简化Ajax开发——Ajax开发入门.docx

    Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个页面的情况下与服务器交换数据并更新...随着对jQuery的深入理解和实践,你会发现它确实能够简化你的JavaScript和Ajax开发,使你的代码变得更加简洁高效。

    ASP.NET源码——Ajax之用户注册实例.zip

    在这个“ASP.NET源码——Ajax之用户注册实例”中,我们将探讨如何在ASP.NET环境中利用Ajax技术实现一个用户注册的功能。 Ajax(Asynchronous JavaScript and XML)是一种在不重新加载整个网页的情况下更新部分网页...

    建网站必备——ajax分页小代码

    3. **AJAX Control Toolkit**:这是一个开源的ASP.NET库,包含许多预封装的Ajax控件和行为,其中的PagingControl可以帮助快速实现分页功能。 4. **jQuery和jQuery UI**:虽然ASP.NET提供了内置的Ajax支持,但使用...

    ASP.NET源码——Ajax三级联动和无刷新分页源码.zip

    这个源码包“ASP.NET源码——Ajax三级联动和无刷新分页源码.zip”显然是一个示例项目,旨在展示如何在ASP.NET环境中实现Ajax技术的三级联动效果和无刷新分页功能。 **Ajax(Asynchronous JavaScript and XML)**是...

    浅谈JavaScript 库———jQuery, ExtJs 的对比研究

    ### 浅谈JavaScript库——jQuery与ExtJs的对比研究 #### 一、引言 随着Web 2.0和RIA(Rich Internet Applications)技术的普及,JavaScript作为一种前端开发的重要工具,逐渐占据了重要的地位。它不再仅仅是用于...

    小议JavaScript库——Dojo、jQuery和PrototypeJS的比较.pdf

    JavaScript 库比较 —— Dojo、jQuery 和 PrototypeJS 在当今的 Web 开发中,JavaScript 库扮演着越来越重要的角色。这些库提供了许多有用的功能,可以帮助开发者快速构建 Web 应用程序。本文将对 Dojo、jQuery 和 ...

    JavaScript网页开发——体验式学习教程.pdf

    这份"JavaScript网页开发——体验式学习教程.pdf"提供了一个深入理解JavaScript语法和实践的平台,帮助初学者和有一定基础的开发者提升技能。 教程首先会介绍JavaScript的基础知识,包括变量、数据类型(如字符串、...

    JavaScript实战手册——第七版代码

    《JavaScript实战手册——第七版代码》是一本专为JavaScript开发者准备的实践指南,它涵盖了从基础到高级的各种JavaScript编程技术。这本书的代码示例旨在帮助读者深入理解语言机制,并提升在实际项目中的应用能力。...

    Web 2.0动态网站开发 : Ajax技术与应用光盘

    在Web 2.0的浪潮中,Ajax(Asynchronous JavaScript and XML)技术成为了构建动态、响应式网页的关键工具。 Ajax并不是一种单一的技术,而是一种综合了多种技术的开发方法。它主要由以下几个关键组件构成: 1. **...

    基于MVC用JSP/Servlet实现JPetStore——使用AJAX和jQuery改善用户体验

    4. **AJAX封装**:jQuery的`.ajax()`函数对XMLHttpRequest进行了封装,提供了更友好的接口,降低了异步请求的复杂度。 **总结** 通过在JSP/Servlet实现的JPetStore项目中集成AJAX和jQuery,我们能够显著提升用户...

    jsf学习必备——实用工具书

    JavaScript Framework (JSF) 是Java平台上的一种用于构建Web应用程序的模型-视图-控制器(MVC)框架。在本文中,我们将深入探讨JSF的核心概念、关键特性以及如何使用它来提高开发效率。"jsf学习必备——实用工具书"很...

    Atlas/ajax基础教程——范例源码

    在Ajax(Asynchronous JavaScript and XML)技术的基础上,Atlas致力于简化前端开发,实现页面的无刷新更新,提高用户体验。这个压缩包中的文件很可能包含了关于如何使用Atlas进行Ajax开发的详细教程和实例源代码。 ...

    基于MVC用JSPServlet实现JPetStore实验报告+使用AJAX和jQuery改善用户体验实验报告.doc

    在本实验报告中,我们将探讨如何使用MVC(Model-View-...通过实践,学生能够更好地理解Web应用的开发流程,掌握Java后端服务的编写,以及前端与后端的交互方式,同时体验到AJAX和jQuery在提升Web应用性能上的优势。

    ASP.NET源码——蓝驿轨迹ajax+xml实现省市区无刷新联动源码.zip

    在这个特定的源码包“ASP.NET源码——蓝驿轨迹ajax+xml实现省市区无刷新联动源码.zip”中,我们关注的是如何使用Ajax(Asynchronous JavaScript and XML)技术和XML来实现省市区选择的无刷新联动功能。这种功能常见...

    ASP.NET AJAX深入浅出系列课程(28):AJAX Control Tookit工具包(下).zip

    在本课程中,我们将深入探讨ASP.NET AJAX中的一个重要组件——AJAX Control Toolkit。这是一套预构建的UI控件和行为,为开发人员提供了方便快捷的方式来实现丰富的交互性和动态效果,无需深入了解底层JavaScript或...

    用JavaScript代码封装而成的函数库.zip

    而提到JavaScript,我们就不能不提及jQuery——一个极其流行的JavaScript库。 jQuery是由John Resig于2006年创建的,它的出现极大地简化了JavaScript的使用,尤其是对于DOM操作、事件处理和Ajax交互等方面。jQuery...

    Java Script 经典教程(五)——JavaScript几段特效

    JavaScript,作为一种广泛应用于网页开发的脚本语言,是前端开发者不可或缺的工具。在"Java Script 经典教程(五)——JavaScript几段特效"中,我们将深入探讨如何利用JavaScript为网页添加各种动态效果,提升用户...

Global site tag (gtag.js) - Google Analytics