嗯,昨天看那个方案要学习这个,就准备刷这部书,争取国庆节把它刷完,嗯,但是还有一部分jQuery没有看完,想来时间是够用,加油吧生活,高兴是Y君私信我了,但是很没落的话,嗯,想起她写给我的句子:在高楼矮窗里活出自己的开阔吧,没错,L.,我希望你也一样,让自己心灵发光,在茫茫人海中,Y. 18.10.05 木开子

第一章 Ajax简介

Web简史:Berners-lee发明了标准通用语言(Standard Generalized Markup language ,SGML)的一个子集称为超文本标记语言(HyperText Markup Language,HTML),创建了称为超文本传输协议(HyperText Transfer Protocol,HTTP)的简单协议,还发明了第一个Web浏览器,叫做WorldWideWeb。
Web发展例程:
最初的Web页面都是静态的,为了让Web动态,引入的CGI(Common Gateway Interfase,通用网关接口),使用CGI在服务器端创建程序,CGI脚本可以使用多种语言编写。对CGI的改进有了applet,applet允许开发人员编写可嵌入在Web页面的小应用程序,在浏览器的java虚拟机(JVM)中运行applet,后来Netscape创建了一种动态脚本语言脚本语言,最终命名为JavaScript,设计JavaScript是为了让不太熟悉Java和Web的开发人员能够更轻松的开发applet,Microsoft也推出了VBScript,在java出现一年以后,sun引入servlet即java代码不用像apple那样的客户端浏览器中运行了,把它控制在一个应用服务器上运行,但是servlet设计界面很不方便,需要以打印流来输出,为了将表示与业务逻辑分离,出现了JSP(JavaScript Pages),Microsoft也推出了ASP。用来设计页面,
Flash:利用flash可以发布高度交互的应用。
DHTML革命:动态HTML(Dynamic HTML,DHTML)结合HTML,层叠式样式表(Cascading Style sheets,CSS),JavaScript,DOM。DHTML 不是 W3C 标准。
XML衍生语言:基于SGML衍生了W3C的可扩展标记语言(eXtensible Markup Language ,XML),如今有许多XHL衍生的语言,Mozilla的XUL(XML User Interface Language,用户界面语言,需要GECko引擎),XAMJ(跨平台语言,基于JAVA,编译型语言,建立在clientlet体系结构上的),Macromedia的MXML(Maximum sXperience Markup Language,最佳体验语言,需要Fiex与ActionScript编写业务逻辑),Microsoft的XAML(eXtensible Application Markup Language,可扩展应用标记语言),XForms(W3C的XForms规约).
ajax:基于XMLHttprequest对象(XHR),消除胖客户(桌面应用)与瘦客户(Web应用)应用之间的界线。即异步通信,允许浏览器与服务器通信而无需刷新当前页面的技术。

第二章 使用XMLHTTPrequest对象

使用XMLHttpRequest对象发送请求和处理响应之前,必须先写JavaScript创建一个XMLHttpRequest对象,由于XMLHttpRequest并不是一个W3C标准,可以采用多种方法创建,Internet Explorer把XMLHttpRequest实现为一个ActiveXObject对象,其他浏览器把它实现为本地的Javascript对象。

var xmlHttp
function createXMLHttpRequest(){
	if(window.ActiveXObject){               //IE浏览器
		xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
	}else if(window.XMLHttpRequest){   //其他浏览器
	   xmlHttp = new XMLHttprequest();
	}
}

方法和属性

交互实例

<input type = "text" id = "email" name ="email" onblur = "validateEmail()">
<script type = "text/javascript">
var xmlHttp;
var email  = document.getElementById("email");
var url = "validata?emali = "+escape(email.value);
//get方法数据作为URl一部分发送,地址数据?隔开。数据以键值对方式显示&隔开。
if(window.ActiveXObject){               //IE浏览器
		xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
	}else if(window.XMLHttpRequest){   //其他浏览器
	   xmlHttp = new XMLHttprequest();
	}
xmlHttp.open("GET",url);
xmlHttp.onreadystatechange = callback;
xmlHttp.send(null);
function callback(){
	if(xmlHttp.readyState == 4 ){
		if(xmlHttp.status ==200){
			//do something interesting here
		}
	}
}
}
</script>

远程脚本:远程调用类型,MSRS等
如何发送简单请求
使用XMLHttprequest对象发送请求的基本步骤:
1,得到XMLHttpRequest对象的实例引用,可以创建新实例,也可以访问已有的实例变量。
2,把对象的onreadystatechange属性设置为指向事件函数的指针。
3,指定请求的属性,open()方法
4,将请求发送给服务器,send()方法,如果没有数据作为请求体的一部分发送,使用null;

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>simple XMLHttpRequest</title>
<script type="text/javascript">
var xmlHttp;
function createXMlHttprequest(){
	if(window.ActiveXObject){
		xmlHttp = new ActiveObject("Microsoft.XMLHttp");
		}
	else if(window.XMLHttpRequest){
		xmlHttp = new XMLHttpRequest();
		}
	}
function srartRequest(){
	createXMLHttprequest();
	xmlHttp.onreadystatechange = handleStateChange;
	xmlHttp.open("GET","simpleResponse.xml",true);
	xmlHttp.send(null);
	}
function handleStateChange(){
	if(xmlHttp.readyState ==4){
		if(xmlHttp.status == 200){
			alert("The servlet replied with:"+xmlHttp.responseYext);
			}
		}
	}
</script>
</head>
<body>
<form action="#">
   <input type="button" value="Start Basic Asynchronous Request" onclick="startRequest()" />
</form>
</body>
</html>

DOM Level 3加载和保存规约:以一种独立于平台和语言的方式,用XML内容修改DOM文档。

10-05 11:01