简单Ajax例子

一、概述

1.程序执行流程:

(1)点击id="testBtn"的按钮,触发validate();

(2)validate()中有调用request.open方法与server交互(在url指定的jsp页面中,调用writer编写了xml文件并以responseXML返回给request);

(3)交互状态有变时会调用callback函数,callback判定状态,若交互成功则读取responseXML中的值;

(4)根据读取到的responseXML中的值动态生成innerHTML返回给页面。

二、代码

1.index.html

 1 <html>
 2 <head>
 3     <script>
 4
 5         function validate(){
 6             var idField = document.getElementById("testBtn");
 7             var url = "validate.jsp?id="+escape(idField);
 8             req = new XMLHttpRequest();
 9             req.open("GET", url, true);
10             req.onreadystatechange = callback;
11             req.send(null);
12
13         }
14
15         function callback(){
16             if(req.readyState == 4){
17                 //alert(req.status);
18                 //alert(req.responseXML);
19                 //alert( msg);
20                 if(req.status == 200){
21                     var msg = req.responseXML.getElementsByTagName("msg")[0];
22                     setMsg(msg.childNodes[0].nodeValue);
23                 }
24             }
25         }
26
27         function setMsg(msg){
28             var mdiv = document.getElementById("ajaxMsg");
29             if(msg == "abc"){
30                 mdiv.innerHTML = "<div>America Born Chinese</div>";
31             }else if(msg == "123"){
32                 mdiv.innerHTML = "<div>阿拉伯数字</div>";
33             }
34
35         }
36     </script>
37 </head>
38 <body>
39     <input type="submit" id="testBtn" onclick="validate()" value="mybutton"/>
40     <span id="ajaxMsg"></span>
41 </body>
42 </html>

2.validate.jsp

1 <%
2 response.setContentType("text/xml");
3 response.setHeader("Cache Control", "no store");
4 response.setHeader("Pragam","no-cache");
5 response.setDateHeader("Expires", 0);
6 response.getWriter().write("<msg>abc</msg>");
7 %>

三、运行结果

时间: 2024-10-05 13:58:08

简单Ajax例子的相关文章

php+jquery+ajax+json简单小例子

直接贴代码: Php代码: <html> <title>php+jquery+ajax+json简单小例子</title> <?php header("Content-Type:text/html;charset=utf-8"); ?> <head> <script type="text/javascript" src="http://code.jquery.com/jquery.min.j

用最简单的例子理解对象为Null模式(Null Object Pattern)

所谓的"对象为Null模式",就是要求开发者考虑对象为Null的情况,并设计出在这种情况下的应对方法. 拿"用最简单的例子理解策略模式(Strategy Pattern) "中的例子来说,在我们的客户端程序中只考虑了用户输入1,2,3的情况,如果用户输入其它数字,比如4,就没有一个对应的IBall接口实现类实例产生,于是会报如下的错: 为了应对这种情况,我们专门设计一个类,当用户输入1,2,3以上的数字,就产生该类的实例.该类同样实现IBall接口. public

Java 多线程编程两个简单的例子

/** * @author gao */ package gao.org; public class RunnableDemo implements Runnable{ @Override public void run() { // TODO Auto-generated method stub for(int i=0;i<10;i++){ System.out.println("新线程输出:"+i); } } public static void main(String []

C#调用存储过程简单完整例子

CREATE PROC P_TEST@Name VARCHAR(20),@Rowcount INT OUTPUTASBEGIN SELECT * FROM T_Customer WHERE [email protected] SET  @[email protected]@ROWCOUNTENDGO------------------------------------------------------------------------------------------存储过程调用如下:-

javaweb简单登陆例子

JSP+Servlet+JavaBean简单程序例子——用户名密码登陆,摘自<Tomcat&JavaWeb 技术手册>,亲测可用. IDE环境:MyEclipse10 1.建立Web Project,命名为Login_test.创建userLogn表: create table userLogin( user_name varchar(10) not null, user_pwd varchar(10) not null, constraint user_pk primary key

命名管道-简单的例子

#include "stdafx.h" #include<iostream> #include<windows.h> #include<ctime> using namespace std; DWORD WINAPI thread1(LPVOID param) { char buf[256]; DWORD rlen=0; HANDLE hPipe = CreateNamedPipe(TEXT("\\\\.\\Pipe\\mypipe&quo

Android中关于JNI 的学习(零)简单的例子,简单地入门

Android中JNI的作用,就是让Java能够去调用由C/C++实现的代码,为了实现这个功能,需要用到Anrdoid提供的NDK工具包,在这里不讲如何配置了,好麻烦,配置了好久... 本质上,Java去调用C/C++的代码其实就是去调用C/C++提供的方法,所以,第一步,我们要创建一个类,并且定义一个Native方法,如下: JniTest类: public class JniTest { public native String getTestString(); } 可以看到,在这个方法的前

php实现socket简单的例子

一.Socket简介 1.socket只不过是一种数据结构 2.使用这个socket数据结构去开始一个客户端和服务器之间的会话 3.服务器是一直在监听准备产生一个新的会话.当一个客户端连接服务端,它就打开服务器正在进行监听的一个端口进行会话 4.服务器端接受客户端的链接请求,那么就进行一次循环.现在这个客户端就能够发送信息到服务器,服务器也能发送信息给客户端.[重点]   虽然如此,游戏服务端依旧不用php,而是用lua或c++,因为php有瓶颈,且很快到达瓶颈. 二.Socket变量 产生一个

Android Handler的一个简单使用例子

在前面 开启一个线程Thread并用进度条显示进度 这篇文章里,我们用线程实现了这么一个简单的功能,就是点击按钮,加载进度条.但是有没有发现,点击一次之后,再次点击就会没效.我们可是需要每次点击都要显示下一张图片的.永盈会娱乐城 这里就需要引入 Android 的消息机制了,简单来说,就是 Handler.Looper 还有 Message Queue的使用.这里我们用一个简单的例子来说明 Handler 的使用,就是每次点击按钮,给消息队列发送一个数字 5.还是在 PaintingActivi