最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Ajax讀取數(shù)據(jù)到表格的實(shí)現(xiàn)代碼

 更新時(shí)間:2010年10月25日 21:12:19   作者:  
前兩篇我們講了 ajax開(kāi)始的準(zhǔn)備 與及如何使用ajax技術(shù)進(jìn)行簡(jiǎn)單的數(shù)據(jù)讀取.
今天我們要講的是:使用Ajax無(wú)刷新技術(shù)讀取服務(wù)端多條數(shù)據(jù),并將返回的數(shù)據(jù)顯示到一個(gè)表格內(nèi).同時(shí)我還將展示,如何使用JavaScript腳本和Dom接口,來(lái)為網(wǎng)頁(yè)創(chuàng)建一個(gè)表格 .將ajax請(qǐng)求的數(shù)據(jù)顯示到該表格內(nèi).
本次的ajax實(shí)例效果中請(qǐng)求的服務(wù)端網(wǎng)頁(yè)依然是:Web_ajax.Asp 該網(wǎng)頁(yè)使用了Asp輸出xml技術(shù).如果你還不知道如何使用Asp輸出xml請(qǐng)返回:"ajax開(kāi)始準(zhǔn)備篇"
提醒:在每篇ajax教程的實(shí)例開(kāi)始之前,你必須查看當(dāng)天的Web_ajax.asp文件中的數(shù)據(jù)結(jié)構(gòu).因?yàn)槲覀兠看螌?shí)例中要讀取的標(biāo)簽和內(nèi)容都不一樣.點(diǎn)擊:查看Web_ajax.Asp
復(fù)制代碼 代碼如下:

<%
'出自:http://Www.Web666.Net
'作者:康董
'如需轉(zhuǎn)載請(qǐng)務(wù)必保留以上信息
'定義一個(gè)變量,來(lái)保存xml數(shù)據(jù)
dim xml
xml = "<?xml version='1.0' encoding='gb2312'?><body>"
xml = xml&"<msg>一個(gè)簡(jiǎn)單的Asp輸出xml的示例,以后在我們的ajax教程實(shí)例中,我們都將使用該文件進(jìn)行數(shù)據(jù)的讀取操作</msg>"
xml=xml&"</body>"
Response.Clear
Response.ContentType="text/xml"
Response.CharSet="gb2312"
Response.Write xml
Response.End
%>

上次我們讀取的是msg標(biāo)簽.今天我們要讀取xml中新增的read標(biāo)簽.我們要實(shí)現(xiàn)的效果是:將read標(biāo)簽下的Html,Css,Dom,JavaScript,Ajax這些文本內(nèi)容.顯示到我們網(wǎng)頁(yè)中的表格內(nèi).
先看下面的代碼.和實(shí)例演示
復(fù)制代碼 代碼如下:

<html>
<head>
<title>ajax讀取數(shù)據(jù)到表格</title>
</head>
<body>
<input type="button" value="顯示數(shù)據(jù)" onclick="Post()" />
<script type="text/javascript">
function ajax_xmlhttp(){
//在IE中創(chuàng)建xmlhttpRequest,適用于IE5.0以上所有版本
var msXmlhttp = new Array("Msxml2.XMLHTTP.5.0","Msxml2.XMLHTTP.4.0","Msxml2.XMLHTTP.3.0","Msxml2.XMLHTTP","Microsoft.XMLHTTP");
for(var i=0; i<msXmlhttp.length; i++){
try
{
_xmlhttp=new ActiveXObject(msXmlhttp[i]);
}
catch(e)
{
_xmlhttp=null;
}
} //循環(huán)創(chuàng)建基于IE瀏覽器的xmlhttp.結(jié)束
//如果非IE瀏覽器,則創(chuàng)建基于FireFox等瀏覽器的xmlhttpRequest
if(!_xmlhttp && typeof XMLHttpRequest != "undefined")
{
_xmlhttp=new XMLHttpRequest();
}
return _xmlhttp;
}

//發(fā)送請(qǐng)求函數(shù)
function Post(){
var ajax = ajax_xmlhttp(); //將xmlhttprequest對(duì)象賦值給一個(gè)變量.
ajax.open("post","web_ajax.asp",true);//設(shè)置請(qǐng)求方式,請(qǐng)求文件,異步請(qǐng)求
ajax.onreadystatechange = function(){//你也可以這里指定一個(gè)已經(jīng)寫(xiě)好的函數(shù)名稱(chēng)
if(ajax.readyState==4){//數(shù)據(jù)返回成功
if(ajax.status==200){//http請(qǐng)求狀態(tài)碼返回ok
var xmlData = ajax.responseXML;//接收返回xml格式數(shù)據(jù)
var read = xmlData.getElementsByTagName("read");//獲取所有的read標(biāo)簽
if(read.length!=0){
var t = document.createElement("table");//創(chuàng)建一個(gè)表格元素
t.setAttribute("border","1");
document.body.appendChild(t);//將表格添加到doby內(nèi)
for(var i=0;i<read[0].childNodes.length;i++){
var tr = t.insertRow(t.rows.length);//添加一行
var td = tr.insertCell(0);//添加一列
td.innerHTML = read[0].childNodes[i].firstChild.nodeValue;//為單元格寫(xiě)入文本內(nèi)容
}
}
}
}
}
ajax.send(null);
}
</script>
</body>
</html>

今天我們不再講昨天重復(fù)過(guò)的內(nèi)容.同樣在Post的函數(shù)內(nèi).多了幾行代碼.可以跟上一篇"ajax初始讀取數(shù)據(jù)篇"進(jìn)行對(duì)比.
下面我們來(lái)講一下今天新增的代碼的作用.

if read.length!=0:即判斷read標(biāo)簽是否被成功獲?。绻鋖egnth屬性不等于0,則代表read已經(jīng)存在.可以對(duì)其進(jìn)行解析
開(kāi)始解析返回?cái)?shù)據(jù),但網(wǎng)頁(yè)中并沒(méi)有存在顯示數(shù)據(jù)的元素.所以我們創(chuàng)建一個(gè)表格:var t = document.createElement("table");.請(qǐng)參考:createElement
t.setAttribute("border","1");為表格添加一個(gè)邊框?qū)傩裕?qǐng)參考:setAttribute
document.body.appendChild(t);將創(chuàng)建好的表格添加到網(wǎng)頁(yè)body元素內(nèi).請(qǐng)參考:appendChild
表格添加完成.開(kāi)始遍歷read標(biāo)簽內(nèi)的所有子元素.也就是:html,css,dom,javascript,ajax這些內(nèi)容.
開(kāi)始一個(gè)循環(huán),read[0].childNodes.length的意思是獲取read標(biāo)簽內(nèi)所有子元素的個(gè)數(shù).在這里會(huì)返回5. i=0;i<5條件ok! 每循環(huán)一次i變量會(huì)自動(dòng)+1,表格會(huì)增加一行,并為該行增加一列.同時(shí)為這一列寫(xiě)入read第i個(gè)子元素的文本內(nèi)容.直到i=5,i不會(huì)再小于read子元素的個(gè)數(shù).條件不滿(mǎn)足.循環(huán)停止.此時(shí)數(shù)據(jù)正好被顯示完畢!
為了讓每位讀者加深理解.我再陳述一遍該實(shí)例效果的實(shí)現(xiàn)流程:當(dāng)你點(diǎn)擊了"顯示數(shù)據(jù)"按扭時(shí),Post函數(shù)被啟用,函數(shù)內(nèi)一個(gè)名字為ajax的變量被賦值XMLHTTPRequest對(duì)象的引用.然后便打開(kāi)了open方法.并使用send方法向服務(wù)端發(fā)出請(qǐng)求.無(wú)論是open還是send方法,都會(huì)引發(fā)readyState方法的狀態(tài)值發(fā)生變化.一旦readyState發(fā)生變化就會(huì)觸發(fā)onreadystatechange屬性. onreadystatechange屬性指定的程序?qū)?huì)執(zhí)行.然后在程序內(nèi)再次判斷readyState的狀態(tài)值是否等于4,如果是則證明整個(gè)發(fā)送請(qǐng)求與服務(wù)端返回?cái)?shù)據(jù)已經(jīng)成功.同時(shí)并判斷status是否等200,如果是則代表http請(qǐng)狀態(tài)碼也已經(jīng)ok!此時(shí)可以放心的百分之百的接收數(shù)據(jù),于是我們使用responseXML屬性來(lái)接收返回的數(shù)據(jù).該屬性只限制接收xml格式的數(shù)據(jù).我始終認(rèn)為將xml格式的數(shù)據(jù)做為請(qǐng)求與回傳的中介.是ajax最標(biāo)準(zhǔn)的使用方法!
今天的ajax實(shí)例教程--"ajax之讀取數(shù)據(jù)到表格"就告一段落.我想是不是應(yīng)該留個(gè)問(wèn)題讓各位讀者來(lái)解決一下?各位有沒(méi)有發(fā)現(xiàn)在實(shí)例演示中.你如果重復(fù)點(diǎn)擊"顯示數(shù)據(jù)"按扭.表格會(huì)被重復(fù)的創(chuàng)建.?dāng)?shù)據(jù)也會(huì)被重復(fù)的讀?。蚁M魑蛔x者可以解決該問(wèn)題.
下次我們來(lái)講:"ajax添加數(shù)據(jù)實(shí)時(shí)讀取篇"

相關(guān)文章

  • 利用ajax提交form表單到數(shù)據(jù)庫(kù)詳解(無(wú)刷新)

    利用ajax提交form表單到數(shù)據(jù)庫(kù)詳解(無(wú)刷新)

    這篇文章主要給大家介紹了關(guān)于利用ajax提交form表單到數(shù)據(jù)庫(kù)(無(wú)刷新)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-02-02
  • 淺析IE針對(duì)Ajax請(qǐng)求結(jié)果的緩存問(wèn)題

    淺析IE針對(duì)Ajax請(qǐng)求結(jié)果的緩存問(wèn)題

    我們通過(guò)一個(gè)ASP.NET MVC應(yīng)用來(lái)重現(xiàn)IE針對(duì)Ajax請(qǐng)求結(jié)果的緩存。在一個(gè)空ASP.NET MVC應(yīng)用中我們定義了如下一個(gè)默認(rèn)的HomeController,其中包含一個(gè)返回當(dāng)前時(shí)間的Action方法GetCurrentTime。
    2015-09-09
  • jQuery下的Ajax調(diào)試步驟

    jQuery下的Ajax調(diào)試步驟

    Ajax 可以為用戶(hù)提供更為豐富的用戶(hù)體驗(yàn)。jQuery 對(duì) Ajax 當(dāng)然也提供了很好的支持,而且還抽象了各種瀏覽器對(duì)于 Ajax 支持方面令人痛苦的差異。接下來(lái),通過(guò)本篇文章給大家介紹jquery下的ajax調(diào)試步驟,感興趣的朋友可以參考下
    2015-09-09
  • 發(fā)現(xiàn)個(gè)AJAX圖片瀏覽器SIMPLEVIEWER

    發(fā)現(xiàn)個(gè)AJAX圖片瀏覽器SIMPLEVIEWER

    發(fā)現(xiàn)個(gè)AJAX圖片瀏覽器SIMPLEVIEWER...
    2007-04-04
  • Spring MVC前端與后端5種ajax交互方法【總結(jié)】

    Spring MVC前端與后端5種ajax交互方法【總結(jié)】

    下面小編就為大家?guī)?lái)一篇Spring MVC前端與后端5種ajax交互方法【總結(jié)】。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-03-03
  • 原生AJAX封裝的簡(jiǎn)單實(shí)現(xiàn)

    原生AJAX封裝的簡(jiǎn)單實(shí)現(xiàn)

    下面小編就為大家?guī)?lái)一篇原生AJAX封裝的簡(jiǎn)單實(shí)現(xiàn)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-07-07
  • 判斷請(qǐng)求頭中是否含有某屬性來(lái)判斷是否是ajax請(qǐng)求

    判斷請(qǐng)求頭中是否含有某屬性來(lái)判斷是否是ajax請(qǐng)求

    本文為大家介紹下如何判斷請(qǐng)求頭中是否含有某屬性來(lái)判斷是否時(shí)ajax請(qǐng)求,具體示例如下
    2014-01-01
  • ajax實(shí)例入門(mén)代碼

    ajax實(shí)例入門(mén)代碼

    想學(xué)習(xí)ajax的朋友,如果剛開(kāi)始接觸可以查看腳本之家的ajax欄目,之前的一些文章。
    2008-11-11
  • AJAX封裝類(lèi)使用指南

    AJAX封裝類(lèi)使用指南

    這篇文章主要介紹了AJAX封裝類(lèi)使用指南,需要的朋友可以參考下
    2014-12-12
  • history保存列表頁(yè)ajax請(qǐng)求的狀態(tài)使用示例詳解

    history保存列表頁(yè)ajax請(qǐng)求的狀態(tài)使用示例詳解

    這篇文章主要為大家介紹了history保存列表頁(yè)ajax請(qǐng)求的狀態(tài)使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12

最新評(píng)論

朔州市| 萨嘎县| 饶河县| 葵青区| 中超| 开远市| 信丰县| 渝北区| 博湖县| 龙门县| 饶平县| 枝江市| 章丘市| 宜阳县| 孝感市| 浙江省| 化州市| 广丰县| 井冈山市| 红安县| 荃湾区| 永顺县| 济源市| 鄱阳县| 腾冲县| 贡山| 中方县| 聂荣县| 吉隆县| 芒康县| 东光县| 常宁市| 辽源市| 青海省| 乐至县| 柞水县| 通州区| 金沙县| 贞丰县| 惠水县| 宿州市|