Ajax
使用JavaScript框架最令人信服的理由是跨瀏覽器的標(biāo)準(zhǔn)化Ajax請求。Ajax請求是異步的HTTP請求,向服務(wù)器端腳本發(fā)送請求,然后得到一個響應(yīng)結(jié)果,如如XML、JSON、HTML、純文本格式的數(shù)據(jù)。大多數(shù)JavaScript框架有一定形式的Ajax請求對象,它接受一系列選項作為參數(shù)。這些選項包括回調(diào)函數(shù),在得到Web服務(wù)器的響應(yīng)時調(diào)用,ExtJS、MooTools和Prototype的Ajax請求看起來是這樣的:
清單11:一個ExtJS 庫中的Ajax請求
Ext.Ajax.request({ url: 'server_script.php', params: { name1: 'value1', name2: 'value2' }, method: 'POST', success: function(transport) { alert(transport.responseText); } });
ExtJS接受一個參數(shù),包括url、params、method 和succcess處理函數(shù)等字段,url字段包含服務(wù)器端腳本的地址,被Ajax請求調(diào)用。Params本身就是一個對象,由鍵/值對組成,然后傳遞到服務(wù)器。method 字段有兩個可選值:GET或POST,默認(rèn)為post方法。最后一個字段是succcess,在服務(wù)器得到成功響應(yīng)后調(diào)用。該例中,假定服務(wù)器端返回純文本,這個文本通過alert()方法呈現(xiàn)給用戶。
接下來,讓我們進(jìn)一步探討MooTools中 Ajax的請求。
清單12:MooTools中的Ajax請求
new Request({ url: 'server-script.php', data: { name1: 'value1', name2: 'value2' }, method: 'post', onComplete: function(response) { alert(response); } }).send();
正如你看見,MooTools與ExtJS很相似。你會注意到,變量通過data字段傳遞,方法字段需要小寫。此外,與success處理函數(shù)不同,MooTools使用onComplete函數(shù)。最后,與ExtJS不同,MooTools實際上用Request的send()函數(shù)發(fā)送請求。
最后,讓我們看看Prototype 有哪些明顯的不同。
清單13:Prototype 中的Ajax請求
new Ajax.Request('server-script.php', { params: { name1: 'value1', name2: 'value2' }, method: 'post', onSuccess: function(transport) { alert(transport.responseText); } });
看看,Prototype以同樣的方式工作,但語法小有差異。對于初學(xué)者來說,原型的Request對象接受兩個參數(shù)傳遞給構(gòu)造函數(shù)。第一個參數(shù)是發(fā)送請求的URL地址,正如你在前面兩個例子看到的那樣,第二個參數(shù)是一個對象,包含各個Ajax請求的選項。當(dāng)然,URl作為一個單獨的參數(shù)傳遞,他不在選項列表中。另外,值得注意的是,與MooTools不同,Prototype 對象的構(gòu)造函數(shù)隱式的發(fā)送請求,所以不需要調(diào)用任何方法觸發(fā)HTTP請求。
大多數(shù)JavaScript框架對Ajax的支持已經(jīng)超越了我這里所說的。一些明顯的增強(qiáng)功能包括在接到響應(yīng)后自動更新元素,而無需任何特殊的onSuccess 函數(shù)。一些庫已經(jīng)預(yù)先構(gòu)建了自動完成功能,正如你在google搜索引擎看到的那樣,在鍵入時給你一些查詢建議。
在接下來的章節(jié)中,您將了解到JavaScript框架給絡(luò)開發(fā)者帶來的用戶體驗(UE)的提升。
轉(zhuǎn)載地址:http://www.denisdeng.com/?p=729
原文地址:http://www.ibm.com/developerworks/web/library/wa-jsframeworks/index.html
本文鏈接:http://www.95time.cn/tech/web/2010/7552.asp
出處:
責(zé)任編輯:bluehearts
◎進(jìn)入論壇網(wǎng)頁制作、WEB標(biāo)準(zhǔn)化版塊參加討論,我還想發(fā)表評論。
|