如何使用Ajax技術開發Web應用程式(3)
出處:blueidea[ 2006-02-10 09:56:11 ] 作者:Sheneyan 譯 責任編輯:xietaoming
作者: Jonathan Fenocchi
時間:2005.10.25
譯者:Sheneyan
英文原文:http://www.webreference.com/programming/javascript/jf/column14/index.html
在這個關於AJAX系列的第三部分中(相關文章:第一部分、第二部分),我們將學習如何使用AJAX與服務端進行寫作以及這些技術如何產生強大的web應用程式。如果你對學習如何構建類似GMail或者Google Maps的web程式感興趣的話,這是一篇基礎的入門(雖然那兩個東東會比我們在這篇文章中提及的內容複雜的多)。在這篇文章中,我使用PHP作為服務端語言,但AJAX能夠和任何服務端語言進行很好的相容,所以你盡可以選擇你所鐘愛的任何語言!
我們還是從我們上一篇文章的代碼(喏,就在上面)開始我們的學習,你可以去閱讀它來作為參考。
這裡就是這個HTML頁面(帶js):
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html lang="zh-cn" dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>如何使用ajax開發web應用程式--樣本</title>
<script type="text/javascript"><!--
function ajaxRead(file){
var xmlObj = null;
if(window.XMLHttpRequest){
xmlObj = new XMLHttpRequest();
} else if(window.ActiveXObject){
xmlObj = new ActiveXObject("Microsoft.XMLHTTP");
} else {
return;
}
xmlObj.onreadystatechange = function(){
if(xmlObj.readyState == 4){
processXML(xmlObj.responseXML);
}
}
xmlObj.open ('GET', file, true);
xmlObj.send ('');
}
function processXML(obj){
var dataArray = obj.getElementsByTagName('pets')[0].childNodes;
var dataArrayLen = dataArray.length;
var insertData = '<table><tr><th>'
+ 'Pets</th><th>Tasks</th></tr>';
for (var i=0; i<dataArrayLen; i++){
if(dataArray[i].tagName){
insertData += '<tr><td>' + dataArray[i].tagName + '</td>'
+ '<td>' + dataArray[i].getAttribute('tasks') + '</td></tr>';
}
}
insertData += '</table>';
document.getElementById ('dataArea').innerHTML = insertData;
}
//--></script>
<style type="text/css"><!--
table, tr, th, td {
border: solid 1px #000;
border-collapse: collapse;
padding: 5px;
}
--></style>
</head>
<body>
<h1>使用Ajax開發web應用程式</h1>
<p>這個頁面示範了AJAX技術如何通過動態讀取一個遠程檔案來更新一個網頁的內容--不需要任何網頁的重新載入。注意:這個例子對于禁止js的使用者來說沒有效果。</p>
<p>這個頁面將示範如從取回並處理成組的XML資料。被取回的資料將會以表格形式輸出到底下。
<a href="#" onclick="ajaxRead('data_3.php'); return false">查看示範</a>.</p>
<div id="dataArea"></div>
</body>
</html>
(sheneyan註:樣本見 example_3.html )
(sheneyan註:樣本見 example_3.html )