JavaScript架構:跨瀏覽器的標準化Ajax請求

來源:互聯網
上載者:User

Ajax

使用JavaScript架構最令人信服的理由是跨瀏覽器的標準化Ajax請求。Ajax請求是非同步HTTP請求,向伺服器端指令碼發送請求,然後得到一個響應結果,如如XML、JSON、HTML、純文字格式的資料。大多數JavaScript架構有一定形式的Ajax請求對象,它接受一系列選項作為參數。這些選項包括回呼函數,在得到Web伺服器的響應時調用,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接受一個參數,包括url、params、method 和succcess處理函數等欄位,url欄位包含伺服器端指令碼的地址,被Ajax請求調用。Params本身就是一個對象,由鍵/值對組成,然後傳遞到伺服器。method 欄位有兩個可選值:GET或POST,預設為post方法。最後一個欄位是succcess,在伺服器得到成功響應後調用。該例中,假定伺服器端返回純文字,這個文本通過alert()方法呈現給使用者。

接下來,讓我們進一步探討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處理函數不同,MooTools使用onComplete函數。最後,與ExtJS不同,MooTools實際上用Request的send()函數發送請求。

最後,讓我們看看Prototype 有哪些明顯的不同。

清單13:Prototype 中的Ajax請求

new Ajax.Request('server-script.php', {
    params: {
        name1: 'value1',
        name2: 'value2'
    },
    method: 'post',
    onSuccess: function(transport) {
        alert(transport.responseText);
    }
});

看看,Prototype以同樣的方式工作,但文法小有差異。對於初學者來說,原型的Request對象接受兩個參數傳遞給建構函式。第一個參數是發送請求的URL地址,正如你在前面兩個例子看到的那樣,第二個參數是一個對象,包含各個Ajax請求的選項。當然,URl作為一個單獨的參數傳遞,他不在選項列表中。另外,值得注意的是,與MooTools不同,Prototype 對象的建構函式隱式的發送請求,所以不需要調用任何方法觸發HTTP請求。

大多數JavaScript架構對Ajax的支援已經超越了我這裡所說的。一些明顯的增強功能包括在接到響應後自動更新元素,而無需任何特殊的onSuccess 函數。一些庫已經預先構建了自動完成功能,正如你在google搜尋引擎看到的那樣,在鍵入時給你一些查詢建議。

在接下來的章節中,您將瞭解到JavaScript架構給絡開發人員帶來的使用者體驗(UE)的提升。

轉載地址:http://www.denisdeng.com/?p=729

原文地址:http://www.ibm.com/developerworks/web/library/wa-jsframeworks/index.html



相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。