`
asdzheng
  • 浏览: 96223 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

AJAX 初探

阅读更多
之前用过一次AJAX,太久忘光了,最近找工作拿起来复习一下。AJAX的英文全程为Asynchronous JavaScript and XML,即异步的javascript 和 xml 结合。这种技术已经用了很多年,举一个例子就是注册用户名时,用ajax技术去访问后台数据库,查看用户名是否已被注册,然后在文本框后面或者下面给出提示,少去了跳转页面的步骤,增加了交互性。在此我们就可以用这个例子来练练手:
在用户名属性哪里设置
onblur = "validate()"
,即当用户名的文本框失去焦点时触发这个事件。
接下来就用js来实现validate()函数:
 <script type="text/javascript">
	var req;
	function validate() {
		var idField = document.getElementById("userid");//取得文本框里用户名
		
		var url = "validate.jsp?id=" + escape(idField.value);//设置待会跳转的URL,并把用户名传进过去
		//alert(url);
		if(window.XMLHttpRequest) { //判断是否为IE7+, Firefox, Chrome, Opera, Safari浏览器
			req = new XMLHttpRequest()//浏览器内部的对象-XMLHttpRequest-用来实现发送和接收HTTP请求与响应信息
		} else if (window.ActiveXObject) {//ie5, ie6
			req = new ActiveXObject("Microsoft.XMLHTTP");
		}
		req.open("GET", url, true);//用get方式打开刚才设置的url,true设置为异步
		req.onreadystatechange = callback; //req调完open后,readystate的值为1,当state的状态改调用callback()
		req.send(null);
	}
	
	function callback() {
		if(req.readyState == 4) { //readystate为4表示已把xml数据加载完毕
			if(req.status == 200) { //http协议中server反馈给客户端时,status=200表示正常,404表示不正常
				//alert(req.responseText);
				var msg = req.responseXML.getElementsByTagName("msg")[0];//接收标签为msg的内容
				//alert(msg);
		        setMsg(msg.childNodes[0].nodeValue);//调用setmsg函数
			}
		}
	}
	
	function setMsg(msg) {
		
		mdiv = document.getElementById("usermsg");
		
		if(msg == "invalid") {
			mdiv.innerHTML = "<font color='red'>用户名已经存在</font>";//判断xml中传来的数据,如果用户名已被注册,既提示“用户名已存在”
		} else {
			mdiv.innerHTML = "<font color='green'>恭喜你,此用户名可以注册!</font>";//否则提示可以注册
		}
	}
	

</script>
 

XM里面的部分内容:
   <%@page import="com.User" pageEncoding="ISO-8859-1"%>

<%
	
	response.setContentType("text/xml");
	response.setHeader("Cache-Control", "no-store"); //HTTP1.1
	response.setHeader("Pragma", "no-cache"); //HTTP1.0
	response.setDateHeader("Expires", 0); //prevents catching at proxy server
	//前面四句是设置返回的头文件名
	
	//下面是到后台查数据库,然后用<msg>标签返回不同的结果
	String name = request.getParameter("id");
	//System.out.println(name);
	if(name != null && !name.trim().equals("")) {
		boolean isExist = User.idExist(name);
		
		if(isExist) {
			response.getWriter().write("<msg>invalid</msg>");
		} else {
			response.getWriter().write("<msg>valid</msg>");
		}
	}
	
%>
 


这就是一个简单的Ajax例子。
分享到:
评论

相关推荐

    基于PHP编程微软ASP.NET Ajax初探.pdf

    "基于PHP编程微软ASP.NET Ajax初探" ASP.NET Ajax是微软推出的一个基于ASP.NET框架的Ajax解决方案,旨在增强ASP.NET服务器端控件的开发体验。然而,在PHP Web开发领域中,如何将ASP.NET Ajax客户端开发技术引入到...

    Ajax的应用初探.pdf

    "Ajax的应用初探" Ajax是一种基于Web的技术,通过异步JavaScript和XML实现客户端与服务器之间的数据交换。它是一种高度结构化的技术,集成了多种计算机技术,包括XHTML和CSS技术、DOM技术、XML和XSLT技术、...

    基于Ajax的WEB编程初探.pdf

    "基于Ajax的WEB编程初探" 本文介绍了 Ajax 技术在 WEB 编程中的应用,讨论了 Ajax 的技术组成、原理和实现方式。Ajax 是一种异步 JavaScript 和 XML 技术,通过在客户端和服务端进行异步数据传输,实现了良好的用户...

    Ajax 博客网站系统

    1)MVC结构本实例在实现上严格遵循MVC结构。...4)本实例系统对Ajax交互做了一个初探,并利用Ajax实现本章实例系统一个功能界面的开发。 5)本系统介绍了一种彻底解决中文乱码问题的方法-UTF-8配置。

    Extjs portal 应用初探

    这通常涉及到Ajax请求和JSONP技术,因为ExtJS是一个客户端库,它需要与服务器端进行通信来获取或提交数据。 此外,标签"源码"提示我们可能需要理解ExtJS的源代码,这对于优化性能和定制功能至关重要。通过阅读源码...

    easyUI初探

    **EasyUI初探** EasyUI 是一款基于 jQuery 的前端用户界面框架,专为开发者提供一套易于使用、功能强大的组件库,使得开发具有专业外观和交互性的 Web 应用变得简单。EasyUI 提供了诸如窗口、表格、下拉菜单、按钮...

    GWT通信机制初探

    **GWT(Google Web Toolkit)通信机制初探** GWT,全称为Google Web Toolkit,是Google推出的一个开源JavaScript开发框架,允许开发者使用Java语言来编写Web应用。它提供了丰富的组件库、编译器以及强大的客户端-...

    Ext3.0 动态数据 Chart 初探

    Ext3.0动态数据Chart初探 在Web开发中,数据可视化是不可或缺的一部分,它能够帮助用户更好地理解和分析数据。Ext JS是一个强大的JavaScript库,专为构建富客户端应用程序设计,其图表组件(Chart)功能强大,支持...

    锋利的JQuery,菜鸟学习实战,JQuery初探最int实例材料,0基础

    "JQuery初探最int实例材料"可能包含了从基础操作到高级技巧的实例,涵盖选择器应用、事件处理、动画制作、Ajax通信等多个方面。通过这些实例,初学者能够深入理解jQuery的工作原理,并逐渐掌握其用法。 总之,...

    jquery 源码初探,一步步实现自己的jquery(四)

    在本篇《jquery 源码初探,一步步实现自己的jquery(四)》中,我们将深入探讨jQuery库的核心概念,并尝试逐步构建一个简易版的jQuery,以帮助理解其内部机制。jQuery是一个广泛使用的JavaScript库,它简化了DOM操作...

    移动开发者必备工具:开源jqTouch初探

    《移动开发者必备工具:开源jqTouch初探》 在当今技术日新月异的时代,移动设备的普及催生了大量针对这些平台的应用程序开发需求。尤其是苹果的iPhone、iTouch和iPad,它们引领了移动设备的新潮流。然而,苹果官方...

    微软图表控件MsChart使用初探.doc

    ### 微软图表控件MsChart使用初探 #### 知识点概览: 1. **微软图表控件MsChart的介绍与应用** - MsChart作为微软提供的一款功能强大的图表绘制工具,适用于.NET Framework 3.5环境,能够满足各种图形统计和报表...

    使用Ruby on Rails开发LBS网站初探示例代码

    这几天一直在学习使用RoR(Ruby on Rails),想建立一个功能全面一点的LBS(Location Based Service)网站。但是对于我这个RoR的初学者(仅有几天时间)来说,毕竟太复杂了。...掌握Ajax在RoR中的一般用法(RJS)。

    .net asp初探

    标题中的“.NET ASP初探”意味着我们将探讨的是关于.NET框架下的ASP.NET技术,这是一个用于构建Web应用程序的强大平台。ASP.NET允许开发人员使用各种编程语言(如C#、VB.NET)来创建动态网页和Web服务。 首先,让...

    MSChart控件手册

    AJAX(三)——AJAX更新 31 五. AJAX(四)——Real Time Chart 35 解决MSChart底部横坐标显示不全的问题 收藏 38 mschart 上下限阈值 画横线 收藏 38 MSChart for vs2008 收藏 39 MSCHART全部属性方法介绍 收藏 ...

    由prototype_1.3.1进入javascript殿堂-类的初探

    还是决定冠上ajax的头衔,毕竟很多人会用这个关键词搜索。虽然我认为这只是个炒作的概念,不过不得不承认ajax叫起来要方便多了。ajax的意思我就不详细解释了。 写这个教程的起因很简单:经过一段时间的ajax学习,有...

    使用IE6看老赵的博客 jQuery初探

    2. jQuery的初探:文件内容显示,作者刚开始接触jQuery,并尝试使用$.ajax方法来异步获取网页内容。这说明了jQuery库由于其易用性和强大的功能,在初学者中很受欢迎,尤其是在处理AJAX请求和DOM操作上。 3. 页面...

    JQuery 构建客户/服务分离的链接模型中Table分页代码效率初探

    在技术实现上,客户端通过JQuery提供的AJAX方法与服务端进行异步通信。这种异步操作方式可以有效提高用户体验,因为它允许在不刷新整个页面的情况下进行数据的请求和加载。然而,这种方式可能会带来效率问题,尤其是...

    考勤系统(EasyUI、未完善).rar

    《构建基于EasyUI的考勤系统初探》 在信息化管理日益重要的今天,考勤系统的建设和完善成为企业管理不可或缺的一部分。本文将围绕一个未完善的考勤系统项目,探讨其核心技术——EasyUI和Ajax在考勤系统中的应用,...

Global site tag (gtag.js) - Google Analytics