2009-08-07 65 views
15

在使用jQuery進行AJAX調用時,應該使用load(url,data,callback)方法與jQuery.get(url,data,callback,type)方法嗎?AJAX jQuery.load與jQuery.get

+1

更多:http://stackoverflow.com/questions/3870086/difference-between-ajax-and-get-and-load – cregox 2015-03-13 10:46:31

回答

20

首先,這兩個功能是完全不同的。 'load'函數與選擇器一起工作,並在所選組中加載AJAX調用的結果,回調函數用於處理調用的「oncomplete」事件;而$ .get函數更通用,並且回調處理AJAX調用的成功響應,您可以自由定義所需的任何行爲。你可以通過查看jQuery框架的文檔和規範來找到所有這些信息。

Here你可以找到一個很好的文檔。

8

加載將數據直接注入到DOM中。如果您不需要這種行爲,請使用get。

-1

只需查看jQuery代碼即可查看。 反正所有呼叫必須達到同樣的方法,但根據不同的需要

15

@阿爾喬姆的答案似乎是缺少事實load是一個更通用的功能比get不同的方式做出迴應。 根據jQuery API docs,負載使用getpost,具體取決於數據。這裏引用它:

請求方法

如果數據被作爲一個對象提供使用POST方法;否則,假定爲GET。

所以從服務器&獲取部分HTML內容將其插入DOM的目的,loadget方法更好的方法,因爲開發者不需要擔心處理龐大的數據&各種中間在插入內容之前取出&之前加載函數執行的步驟。

舉例來說,如果你需要加載一個網頁的部分內容,你可以使用下面的表達式: $('#result').load('ajax/test.html #container');

這檢索的AJAX/test.html中的內容,但隨後jQuery解析返回找到ID爲container的元素。將此元素及其內容插入元素ID爲result的元素中,並放棄檢索到的其他文檔。

有一點要記住的是,當你只需要一個GET請求,避免提供一個對象的數據參數&改用$.param方法來獲得請求參數的序列化形式。

+0

相反,我建議使用數據參數來保持結構和數據分離。對於簡單的查詢,使用字符串連接('id ='+ id'),對於更復雜的東西使用對象和param方法('.param(object)'或'$ .param({id:id,foo:bar })') – Deebster 2012-10-08 15:39:01

+0

@Deebster我認爲更簡單的情況。我知道$ .param對於複雜場景更好。我編輯了答案。謝謝。 – Sujay 2012-10-08 15:56:09