複製代碼 代碼如下:
<!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>讀取Xml並分頁</title>
</head>
<body >
<div id="gao">
</div>
<div>
<table align="center">
<tr>
<td><input type="button" name="prev" id="prev" value="上一頁" onclick="showPage('false')"><input type="button" id="next" name="next" value="下一頁" onclick="showPage('true')"> </td>
</tr>
</table>
</div>
<script type="text/javascript">
function LoadXML(url)
{
var xmlDoc;
if(window.ActiveXObject)
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.load(url);
}else if(document.implementation&&document.implementation.createDocument)
{
xmlDoc=document.implementation.createDocument("","",null);
xmlDoc.async=false;
xmlDoc.load(url);
}else
{
alert("You browser cannot handle this script!");
}
return xmlDoc;
}
var xmlDoc=LoadXML("student.xml");
var students=xmlDoc.getElementsByTagName("student");
var stuLength=students.length;
var currentPage=0;
var pageSize=2;
var maxPage=Math.ceil(stuLength/pageSize);
function showPage(page)
{
var mytable=document.getElementsByTagName("table")[1];
if(mytable) document.body.removeChild(mytable);
var table=document.createElement("table");
table.setAttribute("id","mytable");
table.setAttribute("width","600");
table.setAttribute("border","1");
document.body.appendChild(table);
var header=table.createTHead();
var headerrow=header.insertRow(0);
headerrow.insertCell(0).appendChild(document.createTextNode("姓名"));
headerrow.insertCell(1).appendChild(document.createTextNode("學校"));
headerrow.insertCell(2).appendChild(document.createTextNode("成績"))
if(page=="true")
currentPage++;
else
currentPage--;
if(currentPage>=maxPage) currentPage=maxPage;
else if(currentPage<=0) currentPage=1;
var start=(currentPage-1)*pageSize;
var end=currentPage*pageSize-1;
for(var i=start;i<=end;i++)
{
var e=students[i];
var name=e.getAttribute("name");
var school=e.getElementsByTagName("school")[0].firstChild.data;
var grade=e.getElementsByTagName("grade")[0].firstChild.data;
var row=table.insertRow(i%pageSize+1);
row.insertCell(0).appendChild(document.createTextNode(name));
row.insertCell(1).appendChild(document.createTextNode(school));
row.insertCell(2).appendChild(document.createTextNode(school));
}
}
showPage("true");
</script>
</body>
</html>
在編寫過程過,涉及到代碼的處理上,由於我最初,將javascript代碼放在了head標籤裡面,結果導致document.body對象為空白!
我們都知道,javascript在執行的時候,頁面會暫訂載入而去執行html代碼,所以當js代碼放在head標籤中的時候,html頁面還沒有執行到body,故而產生了錯誤!
後來將js代碼,放在了body的尾部,這樣,就能夠正確引用到body對象了!
同時,在大型網站架構中,也是提高頁面載入速度的一種方式!頁面首頁載入html標籤內容,到頁面最後,在執行js代碼,能在很大程度上提升網頁開啟速度,提升使用者體驗!
另外的student.xml內容是
複製代碼 代碼如下:
<?xml version="1.0" encoding="utf-8"?>
<students>
<student name="gaoxing">
<school>西北大學1</school>
<grade>76</grade>
</student>
<student name="gaoxing">
<school>西北大學2</school>
<grade>76</grade>
</student>
<student name="gaoxing">
<school>西北大3學</school>
<grade>76</grade>
</student>
<student name="gaoxing">
<school>西北大學4</school>
<grade>76</grade>
</student>
<student name="gaoxing">
<school>西北大5學</school>
<grade>76</grade>
</student>
<student name="gaoxing">
<school>西北大6學</school>
<grade>76</grade>
</student>
<student name="gaoxing">
<school>西北大7學</school>
<grade>76</grade>
</student>
<student name="gaoxing">
<school>西北8大學</school>
<grade>76</grade>
</student>
<student name="gaoxing">
<school>西北9大學</school>
<grade>76</grade>
</student>
<student name="gaoxing">
<school>西北10大學</school>
<grade>76</grade>
</student>
<student name="gaoxing">
<school>西北大學</school>
<grade>76</grade>
</student>
<student name="gaoxing">
<school>西北大學</school>
<grade>76</grade>
</student>
<student name="gaoxing">
<school>西北大學</school>
<grade>76</grade>
</student>
<student name="gaoxing">
<school>西北大學</school>
<grade>76</grade>
</student>
</students>