Ajax的原理很简单,就是在客户端创建一个XMLHttpRequest对象(用来与服务器进行异步通信,这就是Ajax的核心,其实我们早就在用异步通信了,只是没把这项技术用在网页设计中而已),为该对象的onreadystatechange 属性添加一个事件,当对象的readyState改变的时候就会引发指定的事件。到此就可以就发送请求读取服务器端的XML数据了,最后要做的就是处理数据了。 关于XMLHttpRequest对象,请参考 About XMLHttpRequest Object一文。
看例子:
复制代码
- //AjaxDemo.html
- <!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>Asynchronous java script And XML</title>
- </head>
- <body>
- <script type="text/java script">
- var xmlHttp=null;
- function readyStateChangeHandle()
- {
- if(xmlHttp.readyState==4)
- {
- if(xmlHttp.status==200)
- {
- var xmlDOM=xmlHttp.responseXML;
- var xmlRoot=xmlDOM.documentElement;
- try
- {
- var xmlItem=xmlRoot.getElementsByTagName("item");
- alert(xmlItem[0].firstChild.data);
- }
- catch(e)
- {
- alert(e.message);
- }
- }
- }
- }
- function ajaxRequest()
- {
- if(window.XMLHttpRequest)
- {
- xmlHttp=new XMLHttpRequest();
- }
- else if(window.ActiveXObject)
- {
- xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
- }
- xmlHttp.onreadystatechange=readyStateChangeHandle;
- xmlHttp.open("GET","data.xml",true);
- xmlHttp.send(null);
- }
- </script>
- <input type="button" οnclick="ajaxRequest()" value="Take me to the world of AJAX" />
- </body>
- </html>
- //data.xml
- <?xml version="1.0" encoding="GB2312" ?>
- <root>
- <item>Welcome to the world of AJAX(Asynchronous java script And XML)!</item>
- </root>
|