`
senny
  • 浏览: 16255 次
  • 性别: Icon_minigender_1
  • 来自: 成都
最近访客 更多访客>>
社区版块
存档分类
最新评论

第八、AJAX基础

阅读更多

 

第八章 AJAX基础

 

关于JavaScript基础文章暂告段落,最近忙于RIA的学习。。。

 

一、同步、异步:

在网上找了个比喻,诠释这两个词:

有一个男的 看上了两个漂亮MM 想通过写信的方式跟他们交流感情 这两个MM分别是  A,B女 

同步:他先给A女写了封信 然后发了出去。等了好几天 A女给他回了信,之后他才给B女写信。就是说等到一个任务返回或者结束 他才继续往下做他想做的任务。 

异步:他先给A女写了封信,然后发了出去,马上又给B女写了封信 也发了出去。  就是说不用等到一个任务结束就去做下一个任务。 

但是如果第一个任务需要第二个任务的返回值 那就得用同步让第一个任务等待第二个任务结束后,获取第二个任务的返回值 在继续往下做

 

二、AJAXAsynchronous JavaScript And XML

异构系统间传递信息的工具:XML或者是JSON

 

三、AJAX交互原理(步骤):

(一)客户端事件发生,调用监听器

(二)在监听函数中创建AJAX引擎(XMLHttpRequest对象)

(三)配置对象:XMLHttpRequest对象状态监听、指定HTTP方法、URL

(四)发送异步HTTP请求到服务器

(五)服务器从数据库获取资源,返回响应。内容类型:text/xml,text/json,text/plain,text/javascript.

(六)XMLHttpRequest对象状态改变调用监听函数处理结果

(七)更新HTML DOM

 

四、XMLHttpRequest对象(AJAX引擎)

(一)方法:

open("HTTP方法","url",异步/同步)

send(content) 请求内容

setRequestHeader("content-type","application/x-www-form-urlencoded")

abort() 中断请求

(二)属性:

onreadystatechange:事件处理 当状态改变时调用监听函数

readyState:状态

未初始化

正在装载

装载完毕

正在交互

完成

status:状态码 如200(响应状态码2XX表示完成,4xx为客服端请求错误,5XX为服务端错误)

responseText 返回的字符串数据

responseXML 返回XML数据

 

五、小实例应用:

要求:页面上一个简单的input文本框,输入name触发change事件,异步向服务器请求该name是否在数据库中存在相同的名字,返回信息。

 

1.HTML代码

 

<input id="uName" name="uName" onchange="nameCheck();" />
<span id="correct">正确</span>
<span id="error">存在相同用户名</span>

 

 

2.JS(事件触发,异步请求服务器)

 

var request = null;
	function nameCheck(){
		var name = document.getElementById("uName").value;
		if(window.XMLHttpRequest){
			request = new XMLHttpRequest();
		}else if(window.ActiveXObject){
			request = new ActiveXObject("MICROSOFT.XMLHTTP");
		}
		
		var url = "checkName.do";
		request.onreadystatechange = showResult;
		request.open("post",url,true); //POST请求必须有下面这一行,表示一个表单请求
		request.setRequestHeader("content-type","application/x-www-form-urlencoded");
		request.send("name="+name);
	}
	
	function showResult(){
		if(request.readyState==4){
			if(request.status==200){ //状态和状态码都OK的情况下
				var correct = document.getElementById("correct");
				var error = document.getElementById("error");
				correct.style.display = "none";
				error.style.display = "none";
				//注释掉的代码为XML类型响应处理
				/*var xmlDoc = request.responseXML;
				var msg = xmlDoc.getElementsByTagName("result")[0].firstChild.nodeValue;
				
				if(msg == "true"){
					error.style.display = "inline";
				}else{
					correct.style.display = "inline";
				}*/
				//下面是json类型处理(字符串)
				var msg = request.responseText;
				eval("var obj="+msg);//如此强大的eval
				
				if(obj.result)
					error.style.display = "inline";
				else
					correct.style.display = "inline";
			}
		}
 
3.VO类(略,简单JavaBean)、dao层(略)。。如下是servlet,响应客户端的异步请求,发送XML或者JSON到客户端
String name = request.getParameter("name");
		UserDao dao = new UserDao();
		response.setContentType("text/json");
		PrintWriter pw = response.getWriter();
		//pw.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");//发送XML必须要这段XML头
		try {
			if(dao.nameCheck(name)){
				pw.println("{result:true}");//XML:pw.println("<result>true</result>");
			}else{
				pw.println("{result:false}");
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
相比之下,JSON传递及JavaScript处理更加方便,代码更少。
JSON适合传递展示型数据,{name:"abc",age:18,sex:"male"}
XML适合传递层次性数据

 

 

1
0
分享到:
评论

相关推荐

    第八章 AJAX基础

    第八章 AJAX基础 第八章 AJAX基础 第八章 AJAX基础 第八章 AJAX基础

    Ajax基础教程(扫描版)

    第8章 万事俱备 209 8.1 模式介绍 209 8.1.1 实现褪色技术 209 8.1.2 实现自动刷新 210 8.1.3 实现部分页面绘制 210 8.1.4 实现可拖放dom 211 8.2 避免常见的陷阱 212 8.3 相关的更多资源 214 8.4 使用框架 ...

    疯狂Ajax讲义pdf

    《疯狂Ajax讲义:Prototype/jQuery+DWR+Spring+Hibernate整合开发》是疯狂Java体系丛书之一,前8章基本以XHTML、JavaScript和DOM编程为主,无须任何基础即可阅读;第9章以后的内容则需要掌握Spring、Hibernate等Java ...

    PHP+Ajax Web 开发红宝书(PPT)

    第8章 PHP中的数据处理.ppt 第9章 目录与文件.ppt 第10章 获取客户端服务器信息.ppt 第11章 Session与Cookie.ppt 第12章 类与对象.ppt 第13章 使用PHP操作XML.ppt 第14章 PHP与MySQL.ppt 第15章 Ajax简介....

    Ajax完全自学手册(源代码).rar

    第8章 IE event flow.htm 冒泡型事件 IE Event handler.htm IE中的事件处理函数 DOM Event handler.htm DOM事件处理监听函数 DifferenceOfIE&DOM.htm IE与DOM中event对象的共性 Test4EventType.htm ...

    疯狂Ajax讲义.zip.005

    《疯狂Ajax讲义:Prototype/jQuery+DWR+Spring+Hibernate整合开发》是疯狂Java体系丛书之一,前8章基本以XHTML、JavaScript和DOM编 程为主,无须任何基础即可阅读;第9章以后的内容则需要掌握Spring、Hibernate等...

    Java Web开发实战经典基础篇(JSP、Servlet、Struts、Ajax)(全)

    Java Web开发实战经典基础篇(JSP、Servlet、Struts、Ajax) 作者: 李兴华 王月清 共5部分,共17章和2个附录,...第2部分 Web基础开发 5~8章 第3部分 Web高级开发 9~14章 第4部分 框架开发 15~17章 第5部分 附录 附录A,B

    疯狂Ajax讲义.zip.002

    《疯狂Ajax讲义:Prototype/jQuery+DWR+Spring+Hibernate整合开发》是疯狂Java体系丛书之一,前8章基本以XHTML、JavaScript和DOM编 程为主,无须任何基础即可阅读;第9章以后的内容则需要掌握Spring、Hibernate等...

    AJAX基础概念、核心技术与典型案例(内涵动态实例)

    第8章(/C08/) 8.1.htm XHTML中的事件绑定 8.2.htm 一个表单按钮的click处理器 8.3.htm 测试事件处理器的作用域 8.4.htm 绑定方法的使用 8.5.htm 使用一段文本来接收按键...

    Ajax完全自学手册(PPT)

    第8章 IE event flow.htm 冒泡型事件 IE Event handler.htm IE中的事件处理函数 DOM Event handler.htm DOM事件处理监听函数 DifferenceOfIE&DOM.htm IE与DOM中event对象的共性 Test4EventType.htm ...

    PHP+Ajax网站开发典型实例-源代码

    第1章 PHP基础实例 ...实例3 中文时间显示实例 实例4 删除字符串中的空白 实例5 字符串反转 实例6 字符串加密 实例7 检查日期的有效性 ...第8章 Ajax数据库操作 第9章 Ajax时尚技术 第10章 Ajax实现综合实例

    ACCP6.0 S2 使用JSP/Servlet/Ajax技术开发新闻发布系统

    ACCP6.0 S2 使用JSP/Servlet/Ajax技术开发新闻发布系统答案

    《JSP+Dreamweaver CS4+CSS+Ajax动态网站开发典型案例》源代码

    《JSP+Dreamweaver CS4+CSS+Ajax动态网站开发典型案例》光盘 完整源代码 有3个完整的jsp网站 ...第8章 在线统计 第9章 注册与登录模块 第10章 学生信息管理系统 第11章 仓库管理系统 第12章 物流管理系统

    疯狂Ajax讲义:Prototype/jQuery+DWR+Spring+Hibernate整合开发(part01)

    《疯狂Ajax讲义:Prototype/jQuery+DWR+Spring+Hibernate整合开发》是疯狂Java体系丛书之一,前8章基本以XHTML、JavaScript和DOM编程为主,无须任何基础即可阅读;第9章以后的内容则需要掌握Spring、Hibernate等Java ...

    Java Web开发实战经典基础篇(JSP、Servlet、Struts、Ajax)

    Java Web开发实战经典基础篇(JSP、Servlet、Struts、Ajax) 共5部分,现在上传的是前3部分,共14章,只有代码,所以资源小。 第1部分 Web开发前奏 1~4章 第2部分 Web基础开发 5~8章 第3部分 Web高级开发 9~14章

    完全手册:ASP.net Ajax电子教程-part1

    本书共分为15章,从初识ASP.NET AJAX开始,首先介绍了ASP.NET AJAX基础知识和结构,然后介绍了ASP.NET AJAX Control Toolkit中的全部控件,如AutoComplete、PasswordStrength、CollapsiblePanel、Tabs、...

    完全手册:ASP.net Ajax电子教程-part2

    本书共分为15章,从初识ASP.NET AJAX开始,首先介绍了ASP.NET AJAX基础知识和结构,然后介绍了ASP.NET AJAX Control Toolkit中的全部控件,如AutoComplete、PasswordStrength、CollapsiblePanel、Tabs、...

    Ajax详解.rar

    第 14部分:面向 Java 开发人员的 Ajax 结合 Direct Web Remoting 使用 Ajax 154 1.1 DWR 是什么? 155 1.2 关于示例 155 1.3 实现目录 156 1.4 测试部署 157 1.5 调用远程对象 158 1.6 实现购物车 160 1.7 ...

    [ASP.NET.AJAX编程参考手册(涵盖ASP.NET.3.5及2.0)].(美)霍斯拉维.扫描版.pdf

    第8章 开发客户端控件 第9章 事件冒泡机制及客户端Button控件 第10章 类型描述扩展 第11章 数据类 第12章 客户-服务器通信 第13章 通过SOAP消息使用Web服务 第14章 通过JSON消息使用Web服务 第15章 代理类 第16章 ...

    疯狂Ajax讲义:Prototype/jQuery+DWR+Spring+Hibernate整合开发(分卷压缩part02)

    《疯狂Ajax讲义:Prototype/jQuery+DWR+Spring+Hibernate整合开发》是疯狂Java体系丛书之一,前8章基本以XHTML、JavaScript和DOM编程为主,无须任何基础即可阅读;第9章以后的内容则需要掌握Spring、Hibernate等Java ...

Global site tag (gtag.js) - Google Analytics