AJAX、AJAX實例及AJAX源代碼(asp)_AJAX教程
推薦:解析RIA和AJAX從體驗時代的@RIA郵件系統(tǒng)和@AJAX郵件系統(tǒng)分析RIA和AJAX 本文主要通過對RIA郵件應(yīng)用和AJAX郵件應(yīng)用的用戶體驗對比,按照對比分析的方式將體驗中的感性升華為理性。同時,此文也可以給所有從事WEB工作的設(shè)計人員和開發(fā)人員以借鑒參考,也能普及RIA常識和AJAX
AJAX介紹 AJAX 關(guān)鍵詞:
JavaScript腳本和可擴展標(biāo)記語言(XML)
WEB瀏覽器技術(shù)
開放式WEB標(biāo)準(zhǔn)
瀏覽器以及獨立平臺
更好更快的網(wǎng)絡(luò)應(yīng)用程序
XML以及HTTP請求
AJAX = 異步JavaScript和可擴展標(biāo)記語言
AJAX是一種運用JavaScript和可擴展標(biāo)記語言(XML),在網(wǎng)絡(luò)瀏覽器和服務(wù)器之間傳送或接受數(shù)據(jù)的技術(shù)。
AJAX是一種瀏覽器技術(shù)
AJAX是一種運用于瀏覽器中的技術(shù)。在瀏覽器和服務(wù)器之間,它使用異步數(shù)據(jù)進行轉(zhuǎn)換,并允許網(wǎng)頁向服務(wù)器索取少量信息而非整個網(wǎng)頁。
這項技術(shù)標(biāo)志著網(wǎng)絡(luò)應(yīng)用程序的微小化、迅捷化以及便捷化。
AJAX是一種不需依靠服務(wù)器軟件而獨立運做的瀏覽器技術(shù)。
AJAX是基于公共標(biāo)準(zhǔn)的
AJAX基于以下一些公共標(biāo)準(zhǔn):
XML 可擴展標(biāo)記語言
HTML 超文本標(biāo)記語言
CSS 層疊樣式表
運用于ALAX的公共標(biāo)準(zhǔn)被很好的定義并且得到一些主要的常用瀏覽器支持。ALAX應(yīng)用程序是獨立的瀏覽器和平臺(交互平臺,交互瀏覽器技術(shù))。
AJAX事關(guān)更好的網(wǎng)絡(luò)應(yīng)用程序
網(wǎng)絡(luò)應(yīng)用程序比單機應(yīng)用程序有更多的好處,它能符合更多用戶的需求,更易安裝且方便支持和擴展。
然而,網(wǎng)絡(luò)應(yīng)用程序并非總是像單機應(yīng)用程序一樣好使喚。
而運用AJAX,網(wǎng)絡(luò)應(yīng)用程序?qū)⒆兊馗鼘嵱茫ǜ�、更快、更易于使用)�?/p>
今天就開始使用AJAX吧!
無需學(xué)習(xí)新的知識。
AJAX是基于公共標(biāo)準(zhǔn)的。這些標(biāo)準(zhǔn)已經(jīng)被大多數(shù)開發(fā)人員使用多年。
大多數(shù)現(xiàn)存的網(wǎng)絡(luò)應(yīng)用程序可以用AJAX進行重新編寫以取代傳統(tǒng)的超文本標(biāo)記語言方式。
AJAX使用可擴展語言和HTTP請求
傳統(tǒng)的網(wǎng)絡(luò)應(yīng)用程序會將輸入的信息提交給服務(wù)器(使用HTML表單)。在服務(wù)器通過代碼后,將會把一個全新的完整的頁面?zhèn)魉徒o用戶。
由于用戶每次提交輸入信息的時候服務(wù)器都將傳回一個新的頁面,傳統(tǒng)的網(wǎng)絡(luò)應(yīng)用程序通常運行緩慢且使用不便。
使用AJAX,網(wǎng)頁應(yīng)用程序能不經(jīng)重新下載整個網(wǎng)頁就發(fā)送并重新獲得數(shù)據(jù)。這是通過發(fā)送HTTP請求和使用JS對網(wǎng)頁進行部分修改來實現(xiàn)的。
聯(lián)系服務(wù)器的較好的方式是發(fā)送像可擴展標(biāo)記語言這樣的數(shù)據(jù)(其他的方法也可以采用)。
你將在這篇引論的下一章節(jié)更多地了解到這一切是如何做到的。
AJAX實例
AJAX可以用來創(chuàng)建更多交互式的網(wǎng)絡(luò)應(yīng)用程序。
AJAX 實例
在以下的AJAX范例中,我們將了解到當(dāng)用戶以網(wǎng)頁格式輸入數(shù)據(jù)時一個網(wǎng)頁是如何與網(wǎng)絡(luò)服務(wù)器連接的。
在下面的框中輸入姓名 *實際操作請前往W3Schools
First Name:
Suggestions:
實例解析-超文本標(biāo)記語言模式
以上的范例所含超文本標(biāo)記語言代碼如下:
<form>
First Name:
<input type="text" id="txt1"
onkeyup="showHint(this.value)">
</form><p>Suggestions: <span id="txtHint"></span></p>
就如你看到的,它只是一個普通的表單,里面有一稱為"txt1"的輸入框
下一段包括了一個稱做“txtHint”的SPAN。這個SPAN是用來存儲從服務(wù)器重新獲得的信息的。
當(dāng)用戶輸入數(shù)據(jù),名為“showHint()”的函數(shù)將被執(zhí)行。這個函數(shù)的執(zhí)行是由“onkeyup”事件觸發(fā)的。換種說法:每當(dāng)用戶在txt1區(qū)域內(nèi)觸動鍵盤按鈕,showHint的功能就被執(zhí)行。
實例解析- showHint()函數(shù)
showHint()函數(shù)是一種位于HTML頂端的簡單的JS函數(shù)。
函數(shù)包含以下代碼:
function showHint(str)
{
if (str.length > 0)
{
var url="gethint.asp?sid="+Math.random()+"&q="+str
xmlHttp=GetXmlHttpObject(stateChanged)
xmlHttp.open("GET", url , true)
xmlHttp.send(null)
}
else
{
document.getElementById("txtHint").innerHTML=""
}
}
每當(dāng)有字符被鍵入輸入?yún)^(qū)內(nèi)就會執(zhí)行這個函數(shù)
如有字符被輸入文字輸入?yún)^(qū)(str.length>0)函數(shù)就執(zhí)行:
建立一個XMLHTTP對象
發(fā)送一個HTTP請求到服務(wù)器上的"gethint.asp"上
當(dāng)HTTP觸發(fā)一次變動則XMLHTTP對象就會執(zhí)行stateChanged()函數(shù)
實例解析 - stateChanged()函數(shù)
stateChanged()函數(shù)包含以下代碼:
function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
document.getElementById("txtHint").innerHTML=xmlHttp.responseText
}
}
每當(dāng)XMLHTTP對象的狀態(tài)發(fā)生改變stateChanged()函數(shù)就會被執(zhí)行
當(dāng)狀態(tài)改變?yōu)?(或為"完成"),txtHint span里就會顯示反饋的文字
AJAX源代碼
AJAX 實例 - AJAX 源碼
下面的源代碼是前一個頁面的。你可以將它復(fù)制并粘貼,自己來嘗試。
AJAX HTML頁面
這是一個HTML網(wǎng)頁。它包括了一個簡單的HTML表單和關(guān)聯(lián)JS的link
<html>
<head>
<script src="clienthint.js"></script>
</head><body><form>
First Name:
<input type="text" id="txt1"
onkeyup="showHint(this.value)">
</form><p>Suggestions: <span id="txtHint"></span></p> </body>
</html>The JavaScript code is listed below.
JS代碼在下面
AJAX 的 JS
這是JS代碼,被保存在"clienthint.js"文件中
var xmlHttp
function showHint(str)
{
if (str.length > 0)
{
var url="gethint.asp?sid=" + Math.random() + "&q=" + str
xmlHttp=GetXmlHttpObject(stateChanged)
xmlHttp.open("GET", url , true)
xmlHttp.send(null)
}
else
{
document.getElementById("txtHint").innerHTML=""
}
}
function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
document.getElementById("txtHint").innerHTML=xmlHttp.responseText
}
}
function GetXmlHttpObject(handler)
{
var objXmlHttp=null
if (navigator.userAgent.indexOf("Opera")>=0)
{
alert("This example doesnt work in Opera")
return;
}
if (navigator.userAgent.indexOf("MSIE")>=0)
{
var strName="Msxml2.XMLHTTP"
if (navigator.appVersion.indexOf("MSIE 5.5")>=0)
{
strName="Microsoft.XMLHTTP"
}
try
{
objXmlHttp=new ActiveXObject(strName)
objXmlHttp.onreadystatechange=handler
return objXmlHttp
}
catch(e)
{
alert("Error. Scripting for ActiveX might be disabled")
return
}
}
if (navigator.userAgent.indexOf("Mozilla")>=0)
{
objXmlHttp=new XMLHttpRequest()
objXmlHttp.onload=handler
objXmlHttp.onerror=handler
return objXmlHttp
}
}
AJAX 服務(wù)端頁面
服務(wù)端頁面被JS所調(diào)遣,是一名為"gethint.asp"的ASP文件,頁面是用VBS來針對IIS所寫的。它可以被輕松的寫成PHP或是一些其他的服務(wù)語言,它只是檢查了名字組并將相吻合的名字返回給客戶端:
dim a(30)
a(1)="Anna"
a(2)="Brittany"
a(3)="Cinderella"
a(4)="Diana"
a(5)="Eva"
a(6)="Fiona"
a(7)="Gunda"
a(8)="Hege"
a(9)="Inga"
a(10)="Johanna"
a(11)="Kitty"
a(12)="Linda"
a(13)="Nina"
a(14)="Ophelia"
a(15)="Petunia"
a(16)="Amanda"
a(17)="Raquel"
a(18)="Cindy"
a(19)="Doris"
a(20)="Eve"
a(21)="Evita"
a(22)="Sunniva"
a(23)="Tove"
a(24)="Unni"
a(25)="Violet"
a(26)="Liza"
a(27)="Elizabeth"
a(28)="Ellen"
a(29)="Wenche"
a(30)="Vicky"
q=request.querystring("q")if len(q)>0 then
hint=""
for i=1 to 30
x1=ucase(mid(q,1,len(q)))
x2=ucase(mid(a(i),1,len(q)))
if x1=x2 then
if hint="" then
hint=a(i)
else
hint=hint & " , " & a(i)
end if
end if
next
end if
if hint="" then
response.write("no suggestion")
else
response.write(hint)
end if
分享:揭密各種AJAX控件和類庫Ajax控件和類庫現(xiàn)在真的太多了,不知不覺中增加了Ajax的神秘性和復(fù)雜性,看到版內(nèi)很多人為此費解和傷神,決定發(fā)此貼談?wù)劚救藢jax的觀點,希望能讓大家對Ajax有一個本質(zhì)的認(rèn)識。 觀點一:Ajax和服務(wù)器端技術(shù)毫不相關(guān) 嚴(yán)格的說,與傳統(tǒng)web開發(fā)相比,Ajax是完
- Ajax中瀏覽器的緩存問題解決方法
- AJAX和WebService實現(xiàn)省市縣三級聯(lián)動具體代碼
- ajax 登錄功能簡單實現(xiàn)(未連接數(shù)據(jù)庫)
- AJAX和WebService實現(xiàn)郵箱驗證(無刷新驗證郵件地址是否合法)
- AJAX和三層架構(gòu)實現(xiàn)分頁功能具體思路及代碼
- 使用AJAX返回WebService里的集合具體實現(xiàn)
- AJAX獲取服務(wù)器當(dāng)前時間及時間格式輸出處理
- ajax傳遞多個參數(shù)具體實現(xiàn)
- ajax傳遞一個參數(shù)具體實現(xiàn)
- 滑輪滾動到頁面底部ajax加載數(shù)據(jù)配合jsonp實現(xiàn)探討
- jQery ajax——load()方法示例介紹
- jQuery+Ajax實現(xiàn)表格數(shù)據(jù)不同列標(biāo)題排序(為表格注入活力)
- 相關(guān)鏈接:
- 教程說明:
AJAX教程-AJAX、AJAX實例及AJAX源代碼(asp)
。