17.JavaWeb基础 Ajax(局部刷新)
来源:互联网 发布:传奇世界db数据库参数 编辑:程序博客网 时间:2024/05/29 04:35
Ajax技术主要完成页面的局部刷新,通过Ajax技术可以使程序在每次提交的时候不用进
行页面的整体刷新,从而提升操作的性能,在Ajax中主要是依靠XMLHttpRequest对象完成
操作。
最典型的例子就是:Goole Map。使用了大量的Ajax技术。
一.Ajax简介
Ajax(Asynchronous JavaScript and XML,异步JavaScript和XML)并不是一项
新的技术,它产生的主要目的是为了页面的局部刷新。每当用户向服务器端发送请求的时候,哪怕
需要一点点简单的更新局部内容,服务器端都会将一个整体的页面进行一次刷新,并重新生成代码
这样程序的性能就会有所降低。如果采用了Ajax技术,就可以实现局部的内容变更,从而使处理的
性能比前者高很多。
Ajax本身是一门综合性的技术,其主要应用包括了HTML、JavaScript、XML、DOM、XMLHttp
-Request等页面技术,但是在这些之中,最重要的是XMLHttpRequest对象。
二.XMLHttpRequest对象
在Ajax中主要通过XMLHttpRequest对象处理发送异步请求和回应的。
接收以普通文本返回的数据,只读responseXML
接收以XML文本返回的数据,只读status返回当前请求的http状态码,只读statusText返回当前请求的http响应行代码,只读
readyState 一共有5种取值,分别介绍一下:
0:请求没发出(open()方法之前)
1:请求已经建立但没发出(send()方法之前)
2:请求已经发出正在处理之中(到这里就可以从响应信息得到内容头部)
3:请求已经从处理,正在接收服务器的信息,响应中通常有部分数据可用,但是服务器还没有完成响应。
4:响应已经完成,可以访问服务器响应并使用它。
三.Ajax返回普通数据
返回数据的页面:
Hello Ajax
Ajax异步处理接受:
<!DOCTYPE html><html><head><title>a1.html</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></head><body><script type="text/javascript" lang="JavaScript">var xmlHttp;//1.创建XMLHttpRequestfunction createXMLHttp() {//使用的是FireFoxif (window.XMLHttpRequest) {xmlHttp = new XMLHttpRequest();//使用的是IE内核} else {xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");}}function showMsg() {createXMLHttp();//2.open()xmlHttp.open("POST", "content.html");//3.设置请求完成之后的回调函数xmlHttp.onreadystatechange = showMsgCallback;//4.send()xmlHttp.send(null);}//回调函数function showMsgCallback() {//数据返回完毕if (xmlHttp.readyState == 4) {//HTTP操作正常if (xmlHttp.status == 200) {var text = xmlHttp.responseText;document.getElementById("msg").className = "给你一个新的名称";document.getElementById("msg").innerHTML = text;}}}</script><input type="button" value="调用Ajax" onclick="showMsg()"><p><div id="msg" style="font-size: 20px;font-weight: bold;"></div></p></body></html>
由于有一段代码document.getElementById("msg").className = "给你一个新的名称"
打开Firebug:
看到了div中的添加了class。
四.Ajax返回XML数据
在XMLHttpRequest对象中可以调用responseXML()方法接收一组返回的XML数据,这些返
回的XML数据可以动态生成(利用JDOM工具将数据库中的数据变为XML文件),也可以直接读取一
个XML文件,当客户端接收到读取的XML文件之后,可以通过DOM解析的方式对数据进行操作。
读取的XML文件:
<?xml version="1.0" encoding="UTF-8"?><message><me><name>CaMnter</name><everytime>Save you from anything 07</everytime></me><she><name>07</name><everytime>Never remember me</everytime></she></message>
Ajax异步处理:
<!DOCTYPE html><html><head><title>a2.html</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></head><body><script type="text/javascript" lang="JavaScript">var xmlHttp;//1.创建XMLHttpRequestfunction createXMLHttp() {if (window.XMLHttpRequest) {xmlHttp = new XMLHttpRequest();} else {xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");}}function sendRequest() {createXMLHttp();//2.open()xmlHttp.open("POST", "msg.xml");//3.设置请求完成之后的回调函数xmlHttp.onreadystatechange = getXMLContent;xmlHttp.send(null);}function getXMLContent() {if (xmlHttp.readyState == 4) {if (xmlHttp.status == 200) {var xmlDoc = xmlHttp.responseXML;var message = xmlDoc.getElementsByTagName("message");var me = message.item("me");var she = message.item("she")document.getElementById("me_name").innerHTML = me.getElementsByTagName("name")[0].firstChild.nodeValue;document.getElementById("me_everytime").innerHTML = me.getElementsByTagName("everytime")[0].firstChild.nodeValue;document.getElementById("she_name").innerHTML = me.getElementsByTagName("name")[1].firstChild.nodeValue;document.getElementById("she_everytime").innerHTML = me.getElementsByTagName("everytime")[1].firstChild.nodeValue;}}}</script><input type="button" value="显示" onclick="sendRequest()"><p><div id="me_name" style="font-size: 20px;font-weight: bold;"></div><div id="me_everytime" style="font-size: 20px;font-weight: bold;"></div></p><p><div id="she_name" style="font-size: 20px;font-weight: bold;"></div><div id="she_everytime" style="font-size: 20px;font-weight: bold;"></div></p></body></html>
- 17.JavaWeb基础 Ajax(局部刷新)
- (JS)Ajax局部刷新技术
- ajax局部刷新
- ajax局部刷新
- 局部刷新实例 ajax
- ajax局部无刷新
- Ajax局部刷新
- Ajax局部刷新
- ajax局部刷新
- $.ajax 实现局部刷新
- Ajax局部刷新
- Ajax局部刷新
- Ajax局部刷新
- AJAX 局部刷新 GridView
- ajax 局部刷新 2
- AJAX局部刷新技术
- ajax局部刷新
- Ajax实现局部刷新
- .javaweb:hover
- armv6, armv7, armv7s的区别
- VC++定制状态栏
- 摘自《张亚勤——让智慧起舞》
- 分治算法求最近点对
- 17.JavaWeb基础 Ajax(局部刷新)
- linux下查询/关闭/启动svn进程
- 安卓启动流程
- poj3080--Blue Jeans(字符串匹配)
- 关于update set from where
- rgmnejakeghen4ghwa4gmnw gr 4 esg, rgj
- adb如何通过wifi连接手机
- tomcat部署项目启动后异常解决
- UVa 11137 - Ingenuous Cubrency (递推 DP 多重背包 )