這是數周前寫的一個關於javascript程式了。”溫故而知新”今天拿出來,溫習溫習,加深印象!其中三段關於AJAX的代碼可以說是通用代碼。
var xmlhttp;
//根據判斷的瀏覽器的不同類型建立XMLHttpRequest對象
function createXMLHttpRequest(){
if (window.ActiveXObject) {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
}
}
//發起非同步請求
function startAsyRequest(){
createXMLHttpRequest();//調用createXMLHttpRequest()XMLHttpRequest對象
xmlhttp.onreadystatechange = handleStateChange;
xmlhttp.open("GET", "bbc.xml?timespan=" + new Date().getTime(), true);
xmlhttp.send(null);
}
//XMLHttpRequest對象的readystate值變化時的處理函數
function handleStateChange(){
if (xmlhttp.readyState == 4) {
if (xmlhttp.status == 200) {
bbcAnalyze();//調用解析請求的XML檔案的函數
}
else {
alert("請檢查web伺服器是否運行正常!");
}
}
}
//解析(利用XML DOM)請求的XML檔案並利用HTML DOM以表格形式呈現資料
function bbcAnalyze(){
xmlDoc = xmlhttp.responseXML;
var table1 = document.getElementById("tb1");
//alert(xmlDoc);
if (xmlDoc) {
var countryNodes = xmlDoc.getElementsByTagName("Country");
//alert(countryNodes.length);
for (var i = 0; i < countryNodes.length; i++) {
var t1=document.createElement("tr");
var region = countryNodes[i].getAttribute("Region");
var td1 = document.createElement("td");
var newpnode1 = document.createTextNode(region);
td1.appendChild(newpnode1);
t1.appendChild(td1);
var name = xmlDoc.getElementsByTagName("Name")[i].childNodes[0].nodeValue;
var td2 = document.createElement("td");
var newpnode2 = document.createTextNode(name);
td2.appendChild(newpnode2);
t1.appendChild(td2);
var area = xmlDoc.getElementsByTagName("Area")[i].childNodes[0].nodeValue;
var td3 = document.createElement("td");
var newpnode3 = document.createTextNode(area);
td3.appendChild(newpnode3);
t1.appendChild(td3);
var population = xmlDoc.getElementsByTagName("Population")[i].childNodes[0].nodeValue;
var td4 = document.createElement("td");
var newpnode4 = document.createTextNode(population);
td4.appendChild(newpnode4);
t1.appendChild(td4);
if (xmlDoc.getElementsByTagName("GDP")[i].hasChildNodes()) {
var gdp = xmlDoc.getElementsByTagName("GDP")[i].childNodes[0].nodeValue;
var newpnode5 = document.createTextNode(gdp);
td5 = document.createElement("td");
td5.appendChild(newpnode5);
t1.appendChild(td5);
}
else {
gdp = "";
td6 = document.createElement("td");
var newpnode6 = document.createTextNode(gdp);
td6.appendChild(newpnode6);
t1.appendChild(td6);
}
table1.appendChild(t1);
//alert(table1);
}
}
else {
alert("xmlDoc檔案為空白,操作失敗!");
}
}