之前用过一次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初探" ASP.NET Ajax是微软推出的一个基于ASP.NET框架的Ajax解决方案,旨在增强ASP.NET服务器端控件的开发体验。然而,在PHP Web开发领域中,如何将ASP.NET Ajax客户端开发技术引入到...
"Ajax的应用初探" Ajax是一种基于Web的技术,通过异步JavaScript和XML实现客户端与服务器之间的数据交换。它是一种高度结构化的技术,集成了多种计算机技术,包括XHTML和CSS技术、DOM技术、XML和XSLT技术、...
"基于Ajax的WEB编程初探" 本文介绍了 Ajax 技术在 WEB 编程中的应用,讨论了 Ajax 的技术组成、原理和实现方式。Ajax 是一种异步 JavaScript 和 XML 技术,通过在客户端和服务端进行异步数据传输,实现了良好的用户...
1)MVC结构本实例在实现上严格遵循MVC结构。...4)本实例系统对Ajax交互做了一个初探,并利用Ajax实现本章实例系统一个功能界面的开发。 5)本系统介绍了一种彻底解决中文乱码问题的方法-UTF-8配置。
这通常涉及到Ajax请求和JSONP技术,因为ExtJS是一个客户端库,它需要与服务器端进行通信来获取或提交数据。 此外,标签"源码"提示我们可能需要理解ExtJS的源代码,这对于优化性能和定制功能至关重要。通过阅读源码...
**EasyUI初探** EasyUI 是一款基于 jQuery 的前端用户界面框架,专为开发者提供一套易于使用、功能强大的组件库,使得开发具有专业外观和交互性的 Web 应用变得简单。EasyUI 提供了诸如窗口、表格、下拉菜单、按钮...
**GWT(Google Web Toolkit)通信机制初探** GWT,全称为Google Web Toolkit,是Google推出的一个开源JavaScript开发框架,允许开发者使用Java语言来编写Web应用。它提供了丰富的组件库、编译器以及强大的客户端-...
Ext3.0动态数据Chart初探 在Web开发中,数据可视化是不可或缺的一部分,它能够帮助用户更好地理解和分析数据。Ext JS是一个强大的JavaScript库,专为构建富客户端应用程序设计,其图表组件(Chart)功能强大,支持...
"JQuery初探最int实例材料"可能包含了从基础操作到高级技巧的实例,涵盖选择器应用、事件处理、动画制作、Ajax通信等多个方面。通过这些实例,初学者能够深入理解jQuery的工作原理,并逐渐掌握其用法。 总之,...
在本篇《jquery 源码初探,一步步实现自己的jquery(四)》中,我们将深入探讨jQuery库的核心概念,并尝试逐步构建一个简易版的jQuery,以帮助理解其内部机制。jQuery是一个广泛使用的JavaScript库,它简化了DOM操作...
《移动开发者必备工具:开源jqTouch初探》 在当今技术日新月异的时代,移动设备的普及催生了大量针对这些平台的应用程序开发需求。尤其是苹果的iPhone、iTouch和iPad,它们引领了移动设备的新潮流。然而,苹果官方...
### 微软图表控件MsChart使用初探 #### 知识点概览: 1. **微软图表控件MsChart的介绍与应用** - MsChart作为微软提供的一款功能强大的图表绘制工具,适用于.NET Framework 3.5环境,能够满足各种图形统计和报表...
这几天一直在学习使用RoR(Ruby on Rails),想建立一个功能全面一点的LBS(Location Based Service)网站。但是对于我这个RoR的初学者(仅有几天时间)来说,毕竟太复杂了。...掌握Ajax在RoR中的一般用法(RJS)。
标题中的“.NET ASP初探”意味着我们将探讨的是关于.NET框架下的ASP.NET技术,这是一个用于构建Web应用程序的强大平台。ASP.NET允许开发人员使用各种编程语言(如C#、VB.NET)来创建动态网页和Web服务。 首先,让...
AJAX(三)——AJAX更新 31 五. AJAX(四)——Real Time Chart 35 解决MSChart底部横坐标显示不全的问题 收藏 38 mschart 上下限阈值 画横线 收藏 38 MSChart for vs2008 收藏 39 MSCHART全部属性方法介绍 收藏 ...
Asp.Net还支持AJAX技术,实现页面的部分更新,提升用户体验。 3. 系统设计与实现 3.1 系统架构 该党务管理信息系统采用Browser/Server(B/S)架构,用户通过浏览器访问系统,所有的业务逻辑和数据处理都在服务器...
还是决定冠上ajax的头衔,毕竟很多人会用这个关键词搜索。虽然我认为这只是个炒作的概念,不过不得不承认ajax叫起来要方便多了。ajax的意思我就不详细解释了。 写这个教程的起因很简单:经过一段时间的ajax学习,有...
2. jQuery的初探:文件内容显示,作者刚开始接触jQuery,并尝试使用$.ajax方法来异步获取网页内容。这说明了jQuery库由于其易用性和强大的功能,在初学者中很受欢迎,尤其是在处理AJAX请求和DOM操作上。 3. 页面...
在技术实现上,客户端通过JQuery提供的AJAX方法与服务端进行异步通信。这种异步操作方式可以有效提高用户体验,因为它允许在不刷新整个页面的情况下进行数据的请求和加载。然而,这种方式可能会带来效率问题,尤其是...
《构建基于EasyUI的考勤系统初探》 在信息化管理日益重要的今天,考勤系统的建设和完善成为企业管理不可或缺的一部分。本文将围绕一个未完善的考勤系统项目,探讨其核心技术——EasyUI和Ajax在考勤系统中的应用,...