<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 6,  comments - 10,  trackbacks - 0
    原文http://www.jsfchina.org/pages/ViewArticles.jsf
    去年開(kāi)始看AJAX時(shí)候所寫的第一個(gè)小程序,整理了下。應(yīng)該算AJAX最簡(jiǎn)單的應(yīng)用了。
    ?
    首先,演示一下實(shí)際運(yùn)行的效果。點(diǎn)擊彈出新頁(yè)面中的“See Author”鏈接,你將會(huì)看到該頁(yè)面作者。從頁(yè)面提交到顯示從服務(wù)器獲得的結(jié)果,這段過(guò)程你將不會(huì)發(fā)現(xiàn)頁(yè)面的重刷新。
    下面給出該示例的代碼:
    1. ajax.html
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>A simple AJAX example</title>
    <script type="text/javascript"><!--
    ? function findAuthor(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){
    ?????? ??? updateObj('author',
    ?????? ?xmlObj.responseXML.getElementsByTagName('name')[0].firstChild.data);
    ??? ?? }
    ?????}
    ??? xmlObj.open ('GET', file, true);
    ??? xmlObj.send ('');
    ? }
    ? function updateObj(obj, data){
    ?? var textNode = document.createTextNode(data);
    ?? document.getElementById(obj).appendChild(textNode);
    ? }
    ? //--></script>
    </head>
    <body>
    <h1>A simple AJAX program</h1>
    <p id="obj">This page is powered by <a id='link' href="data.xml"
    ?title="View the author."
    ?onclick="findAuthor('data.xml'); this.style.display='none'; return false">See
    Author.</a><span id="author" style="color: olive; font-weight: bolder"></span></p>
    </body>
    </html>

    ?

    2.data.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <author>
    ?<name>www.jsfchina.org</name>
    </author>

    ?

    解析下。

    該例應(yīng)該算是最簡(jiǎn)單的ajax應(yīng)用了。為了盡求簡(jiǎn)單性,這里沒(méi)有使用到任何服務(wù)器端技術(shù),諸如servlet,cgi等等。這里并沒(méi)有使用到任何業(yè)務(wù)方法,而是直接從服務(wù)器的一個(gè)xml文檔(data.xml)中讀取數(shù)據(jù)。為了簡(jiǎn)潔性,本例將JavaScript文件也集成到了ajax.html中,實(shí)際應(yīng)用中完全可以獨(dú)立出去使用。

    該例通過(guò)點(diǎn)擊鏈接,激發(fā)了一個(gè)javascript的方法然后進(jìn)行交互處理。

    AJAX的核心是XMLHttpRequest,本例通過(guò)下列代碼創(chuàng)建這個(gè)對(duì)象

    ? var xmlObj = null;
    ? if(window.XMLHttpRequest){
    ????? xmlObj = new XMLHttpRequest();
    ? } else if(window.ActiveXObject){
    ????? xmlObj = new ActiveXObject("Microsoft.XMLHTTP");
    ? } else {
    ????? return;
    ? }

    if(window.XMLHttpRequest)處理了瀏覽器是mozilla的情況,而if(window.ActiveXObject)則處理了瀏覽器為IE的情況,目的都是一個(gè):創(chuàng)建了一個(gè)XMLHttpRequest對(duì)象。創(chuàng)建這個(gè)對(duì)象的目的就是讓XMLHttpRequest對(duì)象與服務(wù)器交互,而不影響用戶正在瀏覽的頁(yè)面。這也是AJAX稱謂的由來(lái),異步j(luò)avascript交互xml處理。

    創(chuàng)建好XMLHttpRequest對(duì)象之后,調(diào)用的函數(shù)將會(huì)監(jiān)聽(tīng)該對(duì)象狀態(tài)的變化,即onreadystatechange屬性。XMLHttpRequest對(duì)象有5個(gè)狀態(tài),從0-4的整數(shù),也就是說(shuō)onreadystatechange調(diào)用的函數(shù)(示例中function(){...})將會(huì)執(zhí)行4次。示例中我們?cè)谠搶?duì)象處于完成狀態(tài)(readyState=4)時(shí)進(jìn)行處理(此時(shí)服務(wù)器已經(jīng)傳回所有信息),為id為“author”的span對(duì)象添加了一個(gè)textNode節(jié)點(diǎn),該textNode是data.xml文檔中name節(jié)點(diǎn)的第一個(gè)子元素的值。

    好了,這就是完成一次異步交互所需要的步驟。

    以下是一些注意點(diǎn)。

    第一,本例中使用的http的GET方法,你也可以使用POST,但是要設(shè)定Content-Type值,即xmlObj.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),這個(gè)方法用來(lái)設(shè)置了MIME類型。還有一點(diǎn)要注意,這些方法最好都大寫,否則在firefox下將沒(méi)有作用。

    第二,xmlObj.open ('GET', file, true)。該方法會(huì)建立與服務(wù)器的鏈接,‘GET’指明了http調(diào)用方法;file指明了調(diào)用的url;true指明了該調(diào)用是異步處理,可以省略,默認(rèn)為'true'。

    第三,xmlObj.send(para)向服務(wù)器發(fā)出請(qǐng)求。是以POST向服務(wù)器發(fā)出request,其參數(shù)格式為:name=namevalue&so=on。(參考注意點(diǎn)一)

    ?

    轉(zhuǎn)貼注明出處www.jsfchina.org
    posted on 2006-04-07 11:33 Nelson Lee 閱讀(392) 評(píng)論(5)  編輯  收藏

    FeedBack:
    # re: 一個(gè)簡(jiǎn)單的ajax實(shí)例(轉(zhuǎn))
    2006-04-08 12:18 | lin5061
    又是AJAX,太爽了!可能過(guò)一陣子我也得看這玩意兒了。雖然還不知道什么是AJAX,但是聽(tīng)說(shuō)163和GMAIL的郵箱就是用這種技術(shù)在做的,看來(lái)應(yīng)該會(huì)很看好。還記得以前我們談過(guò)不刷新頁(yè)面得到數(shù)據(jù)沒(méi)?我想可能會(huì)跟這方面有點(diǎn)關(guān)系吧。
    (呵呵,這篇文章不錯(cuò),我也來(lái)個(gè)收藏吧)  回復(fù)  更多評(píng)論
      
    # re: 一個(gè)簡(jiǎn)單的ajax實(shí)例(轉(zhuǎn))
    2006-04-08 12:19 | lin5061
    哇,不會(huì)吧?難道你這個(gè)BLOG也是用的AJAX技術(shù)?怎么頁(yè)面沒(méi)有刷新???太強(qiáng)悍了!再提交一次  回復(fù)  更多評(píng)論
      
    # re: 一個(gè)簡(jiǎn)單的ajax實(shí)例(轉(zhuǎn))
    2006-04-08 12:20 | lin5061
    不行,還是有刷新頁(yè)面的,呵呵  回復(fù)  更多評(píng)論
      
    # re: 一個(gè)簡(jiǎn)單的ajax實(shí)例(轉(zhuǎn))
    2006-04-10 11:40 | Nelson
    一個(gè)AJAX小試牛刀的地方,看得我嚇一大跳
    http://cluster1.gbaopan.com/gbaopan.web/Register.aspx
    不用AJAX也不行啊  回復(fù)  更多評(píng)論
      
    # re: 一個(gè)簡(jiǎn)單的ajax實(shí)例(轉(zhuǎn))
    2006-04-17 16:23 | lin5061
    "一個(gè)AJAX小試牛刀的地方,看得我嚇一大跳
    http://cluster1.gbaopan.com/gbaopan.web/Register.aspx
    不用AJAX也不行啊"
    這是什么??  回復(fù)  更多評(píng)論
      

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    <2006年4月>
    2627282930311
    2345678
    9101112131415
    16171819202122
    23242526272829
    30123456

    常用鏈接

    留言簿(1)

    隨筆檔案

    好友的BLOG

    搜索

    •  

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 国产92成人精品视频免费| 免费精品一区二区三区第35 | 亚洲国产精品无码久久一线| 免费在线观看亚洲| 波多野结衣中文一区二区免费| 天天综合亚洲色在线精品| 国产男女猛烈无遮档免费视频网站| 中文字幕在线观看亚洲视频| 无人影院手机版在线观看免费| 亚洲人成人77777网站不卡| 国产在线观看免费观看不卡| 亚洲另类精品xxxx人妖| 无码视频免费一区二三区 | 亚洲精彩视频在线观看| 久久九九兔免费精品6| 国产成人精品日本亚洲18图| 成人免费午间影院在线观看| 精品亚洲成A人在线观看青青| 亚洲精品高清一二区久久| 国产成年无码久久久免费| 亚洲的天堂av无码| 午夜男人一级毛片免费| 四虎永久在线精品免费一区二区| 国产亚洲情侣一区二区无码AV| 成人免费区一区二区三区 | 久久丫精品国产亚洲av不卡| 一二三四影视在线看片免费| 国产成人+综合亚洲+天堂| 最新国产AV无码专区亚洲| 亚洲一级免费视频| 亚洲国产精品无码久久| 亚洲日韩aⅴ在线视频| 18禁网站免费无遮挡无码中文 | A片在线免费观看| 亚洲成在人线电影天堂色| 日本一道高清不卡免费| 国产产在线精品亚洲AAVV| 97碰公开在线观看免费视频| 亚洲精品天堂无码中文字幕| 国产成人亚洲综合色影视| 一二三四免费观看在线电影 |