Shunze 學園 >電腦資訊學系 >吃軟不吃硬 > 《分享》AJAX技術 哈囉,還沒有註冊或者登入。請你[註冊|登入]
« 上一篇主題 下一篇主題 » 顯示成列印模式 | 增加到我的最愛
發表新主題 發表回覆
作者
主題
shunze
工友伯伯


註冊日期: 2002 04
來自: 潮汐終止之地
文章: 2380

shunze 離線
《分享》AJAX技術引用回覆 編輯/刪除文章 搜尋由  發表的其他文章 回報給版主 IP 位置 回此頁最上方

AJAX全名為Asynchronous JavaScript and XML,即非同步JavaScript和XML。
指的是一種創造互動式網頁應用的開發技術。

AJAX包含了以下幾種技術:
*基於XHTML/CSS
*由DOM(Document Object Model)實現動態顯示與交互
*通過XML和XSLT進行數據交換及處理
*使用JavaScript整合上述技術


傳統的網頁應答交流,是透過使用者送出資料傳回主機;
主機處理後,刷新使用者瀏覽器窗口來顯示回應。

而AJAX能夠實現不刷新瀏覽器窗口(當然更不用安裝額外的插件),
只更新某些區塊的主機回饋更新,而滿足用戶的操作。

透過AJAX技術,使用者的瀏覽器不用頻頻閃爍,進行畫面更新。
其友善度當然是可見一斑!



♥順子老婆的網拍,請多關照∼

If you don't like something, change it.
If you can't change it, change your attitude.
Don't complain!




2006-05-13, 15:04 shunze 的個人資料 把 shunze 加入好友列表 發送Email給 shunze 瀏覽 shunze 的網站 MSN : shunze@gmail.com
shunze
工友伯伯


註冊日期: 2002 04
來自: 潮汐終止之地
文章: 2380

shunze 離線
《分享》AJAX Sample引用回覆 編輯/刪除文章 搜尋由  發表的其他文章 回報給版主 IP 位置 回此頁最上方

我們以ASP網頁為例,做個簡單的示範。

AJAX技術既然是透過DOM(Document Object Model)來實現動態顯示,
所以網頁中一定會有個client端的javascript來呼叫物件。

<SCRIPT ID="clientEventHandlersJS" LANGUAGE="javascript">
<!--
function GetData(KeyData){
    xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
    var strURL='getcode.asp?KeyData=' + KeyData;
    xmlhttp.open('POST',strURL,false);
    xmlhttp.Send(null);
    var rc=xmlhttp.responseText;
    return rc;
}
-->
</SCRIPT>

在這個script中,我們可以看到透過xmlhttp物件的建立,
我們可以連結到後端網頁getcode.asp中,取得server端處理內容,
然後將處理後結果,回傳給xmlhttp物件。
而,這,就是AJAX的精華所在了!


以下,我們以一個簡單的ASP sample,test.asp及其對應呼叫程式getcode.asp為例,說明其運作流程。
test.asp內容如下:
<%@ language="VBScript"%>
<HTML>
<HEAD>
<TITLE></TITLE>
<META http-equiv=Content-Type content="text/html; charset=big5">
<link href="include/emall.css" rel="stylesheet" type="text/css">
<SCRIPT ID="clientEventHandlersJS" LANGUAGE="javascript">
<!--
function GetData(KeyData){
    xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
    var strURL='getcode.asp?KeyData=' + KeyData;
    xmlhttp.open('POST',strURL,false);
    xmlhttp.Send(null);
    var rc=xmlhttp.responseText;
    return rc;
}

function btnclick() {
    var rc=GetData('順子');
    window.document.all.div01.innerHTML=rc;
}
-->
</SCRIPT>
</HEAD>
<BODY>
<FORM action="" method=POST id=form1 name=form1>
    <input type="button" name="btn01" id="btn01" value="test" onclick="btnclick()">
    <div id="div01" name="div01"></div>
</FORM>
</BODY>
</HTML>


getcode.asp內容如下:
<%@ language="VBScript"%>
<%
    dim strReturn
    strReturn="<table border=1><tr><td>從server回傳的表格, Key值為:"& Request.querystring("KeyData") &"</td></tr></table>"
    Response.CharSet="big5"
    Response.write strReturn
%>


當我們執行test.asp網頁後,網頁上只會有一個按鈕"test"。

按下test按鈕後,會觸發鈕按的onclick事件而去呼叫btnclick()函數。

而在btnclick函數中,又去呼叫GetData函數,並帶入了參數'順子'。

然後在GetData函數中,建立了Microsoft.XMLHTTP的ActiveXObject物件,隨即去server端getcode.asp取回回傳資料。

最後再透過div物件的innerHTML屬性,將server端處理過的內容更新在網頁上。

這樣就完成了一個AJAX的更新週期了!


嘿嘿∼有沒有發現AJAX的基本原理,其實一點也不難呢?

範例程式在附加檔案中,需要者請自行下載。
解開後,放在同一ASP目錄下,即可運作∼

shunze 上傳的檔案
AJAX_ASP_sample.zip (1 KB, 已經被下載 1308 次)


♥順子老婆的網拍,請多關照∼

If you don't like something, change it.
If you can't change it, change your attitude.
Don't complain!




2006-08-17, 15:28 shunze 的個人資料 把 shunze 加入好友列表 發送Email給 shunze 瀏覽 shunze 的網站 MSN : shunze@gmail.com
  « 上一篇主題 下一篇主題 »
發表新主題 發表回覆
跳到:

Powered by: Burning Board 1.1.1 2001 WoltLab GbR