DHTML
动态HTML(Dynamic HTML,简称DHTML),其实并不是一门新的语言,它只是HTML、CSS和客户端脚本的一种集成,即一个页面中包括html+css+javascript(或其它客户端脚本),其中css和客户端脚本是直接在页面上写而不是链接上相关文件。DHTML不是一种技术、标准或规范,只是一种将目前已有的网页技术、语言标准整合运用,制作出能在下载后仍然能实时变换页面元素效果的网页设计概念。
XHR
XmlHttpRequest异步数据获取技术
AJAX
AJAX不是一门新的技术, 而是将JavaScript, XML和异步执行这3项综合运用的一个解决方案
-
ajax的特性。它是用来发送异步请求的,请求的是服务器,但不会刷新页面
-
包含主要内容
运用HTML + CSS来表达信息
运用JavaScript操作DOM来实现效果
运用XML, JSON等进行数据交互
运用XMLHttpRequest与web服务器进行异步数据交互
-
AJAX交互模型
AJAX支持WEB异步交互
AJAX 异步的javascript和xml
AJAX = DHTML + XHR
AJAX编码步骤
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>测试异步与服务器的通信</title>
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
<script type="text/javascript" src="util.js"></script>
<script type="text/javascript">
window.onload=function(){
document.getElementById("bt1").onclick=function(){
//发出异步请求
// 1、创建XmlHttpRequest对象
var xhr = getXmlHttpRequest();
// 2、注册状态监控回调函数 .何时调用。xhr属性readyState每次发生变化时
xhr.onreadystatechange=function(){
if(xhr.readyState==4){//说明响应结束
if(xhr.status==200){//说明响应成功。status代表是响应状态码
//alert(xhr.statusText);
alert("异步请求已经响应结束了,请到控制台看看服务器端有没有输出");
}
}
}
// 3、建立与服务器的异步连接
xhr.open("GET","/day21_00_ajax/servlet/ServletDemo1?time="+new Date().getTime());
// 4、发出异步请求
xhr.send(null);
}
}
</script>
</head>
<body>
<input type="button" id="bt1" value="发出异步请求"/>
</body>
</html>
XmlHttpRequest的属性
-
a、readyState:short只读 标识着当前的请求状态
1 XmlHttpRequest对象被创建了。此时为0
2 建立与服务器的链接,但是请求还没有发出去。此时为1。open(),send()还没有执行。
3 发出了请求,但是服务器没有任何响应。此时为2
4 接收到了服务器的响应,接收到了服务器发出的响应消息头时,此时3.
5 接收到了服务器发送的响应正文,响应结束。此时为4
b、status:代表着响应状态码
c、statusText:响应码描述
d、responseText:字符串类型。代表着响应正文内容,把他当做文本对待
e、responseXML:Document。代表着响应正文内容,把他当做一个Document对象。(DOM)
XmlHttpRequest的方法
a、getAllResponseHeaders():返回的是所有的响应消息头。是一个字符串。
b、getResponseHeader(var headerName):返回指定响应消息头的值。是一个字符串。
-
c、open(var method,var url,boolean isAnsy):建立连接。
method,请求方式
url,请求的地址
isAnsy,同步还是异步。默认是true,就是异步。
d、send(var data):向服务器发送请求正文。如果是get请求,请求传入null.
如果是post请求:data ="username=abc&password=123"e、setRequestHeader(var headerName,var headerValue):向服务器发送请求消息头。
XmlHttpRequest的状态监听器
onreadystatechange,指向是一个函数。回调函数。
何时触发执行,每次XHR对象的readyState发生变化都会触发。
-
一般写法:
xhr.onreadystatechange=function() { if(xhr.readyState==4) { if(xhr.status==200) { //JS之DOM、BOM编程 } } }
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。