?
最近有時(shí)間看了一下最近鈔作比較厲害的AJAX,感覺(jué)確實(shí)有些好的地方,我認(rèn)為主要在2個(gè)點(diǎn)上1:XMLHTTP
2:?? DOM
3:JAVASCRIPT對(duì)dom的便利
只要熟悉這3個(gè)方面的東西ajax并不難掌握
至于ajax 的engine,并沒(méi)有去使用和熟悉,51期間可以好好利用這個(gè)時(shí)間熟悉一下,用在www.sowq.com的開(kāi)發(fā)上
一下程序從網(wǎng)站上抄來(lái)的
URL:http://lilac.greatweb.cn/zhangyuanyi/weblog/2005/11/ajax1-helloworld.html
<HTML>
??????? <HEAD>
??????? <TITLE> AJAX指南(1) ---- Hello,world! </TITLE>
??????? </HEAD>
??????? <BODY onload="HelloWorld()">
??????? <DIV ID="ajax-sample">
??????? </DIV>
??????? </BODY>
??????? </HTML>
function getHTTPObject()??????????
??????? {??????????????????????????????????
??????? ??????? var http;
??????? ??????? var browser = navigator.appName;
??????? ??????? if(browser == "Microsoft Internet Explorer")
??????? ??????? {
??????? ??????? ??????? //如果用戶使用IE,就返回XMLHTTP的ActiveX對(duì)象
??????? ??????? ??????? http = new ActiveXObject("Microsoft.XMLHTTP");?
??????? ??????? }
??????? ??????? else
??????? ??????? {
??????? ??????? ??????? //否則返回一個(gè)XMLHttpRequest對(duì)象
??????? ??????? ??????? http = new XMLHttpRequest();?
??????? ??????? }
??????? ??????? return http;
??????? }
? 得到HTTP請(qǐng)求對(duì)象之后,我們需要向服務(wù)段發(fā)送請(qǐng)求,假設(shè)服務(wù)端為hello.php,下面的代碼負(fù)責(zé)獲取服務(wù)端的響應(yīng):
??????? //獲取全局的HTTP請(qǐng)求對(duì)象
??????? var http = getHTTPObject();
??????? //處理請(qǐng)求狀態(tài)變化
??????? function getHello()????????
??????? {
??????? ??????? //4表示請(qǐng)求已完成
??????? ??????? if (http.readyState == 4)?
??????? ??????? {
??????? ??????? ??????? //獲取服務(wù)段的響應(yīng)文本
??????? ??????? ??????? var helloStr = http.responseText;?
??????? ??????? ??????? //插入響應(yīng)到ID為ajax-sample的DIV標(biāo)簽內(nèi)
??????? ??????? ??????? document.getElementById("ajax-sample").innerHTML = helloStr;
??????? ??????? }
??????? }
??????? function HelloWorld()
??????? {
??????? ??????? var url = "hello.php";
??????? ??????? //指定服務(wù)端的地址
??????? ??????? http.open("GET", url, true);?
??????? ??????? //請(qǐng)求狀態(tài)變化時(shí)的處理函數(shù)
??????? ??????? http.onreadystatechange = getHello;
??????? ??????? //發(fā)送請(qǐng)求
??????? ??????? http.send(null);????????????
??????? }
上面的這段程序就用到了xmlhttp,非常明了,不過(guò)可以考慮用http的state來(lái)做真正的進(jìn)度條,解決一個(gè)假進(jìn)度的問(wèn)題,絕對(duì)是個(gè)不錯(cuò)的主意