$.ajax()
和$.get()
和$.load()
之間的區別是什麼?
哪個更好用,在什麼條件下使用?
$.ajax()
和$.get()
和$.load()
之間的區別是什麼?
哪個更好用,在什麼條件下使用?
$.ajax()
是最可配置的一個,您可以通過HTTP頭等進行細粒度控制。您也可以使用此方法直接訪問XHR對象。還提供了更細粒度的錯誤處理。因此可能會更復雜,往往不必要,但有時非常有用。你必須用回調自己處理返回的數據。
$.get()
只是$.ajax()
的簡寫,但會將一些配置摘要消除,爲您隱藏的內容設置合理的默認值。將數據返回給回調。它只允許GET-請求,因此伴隨着$.post()
功能類似的抽象,只爲POST
類似於$.get()
但增加了功能,它允許您定義在文檔中返回的數據將被插入。因此,只有當調用只會導致HTML時才真正可用。它被稱爲與其他全局調用略有不同,因爲它是綁定到特定jQuery包裝的DOM元素的方法。因此,一個會做:$('#divWantingContent').load(...)
應當注意的是,所有$.get()
,$.post()
,都是爲了$.ajax()
只是包裝,因爲它的內部調用。
的jQuery的Ajax的文檔中的更多細節:http://api.jquery.com/category/ajax/
是否有任何性能差異? – 2015-09-19 12:57:02
@UzairAli不,它從字面上把你傳遞給它的變量用來執行jQuery.ajax() – lisburnite 2016-12-14 12:58:57
好的,.load()只是純HTML,而.get()對於更多的事情是有用的。 – 2017-07-31 20:46:56
$.get = $.ajax({type: 'GET'});
$.load()
是一個輔助函數,它只能在元素上調用。
$.ajax()
爲您提供了最大程度的控制。如果您想發表的數據,你可以指定,得到了更多的回調等
非常基本的,但
$.load()
:加載一張的HTML到容器DOM中。$.get()
:如果你想使一個GET通話,並與廣泛的響應發揮使用此功能。$.post()
:如果你想使一個POST電話,不希望加載某些容器DOM的響應使用此功能。$.ajax()
:如果您需要的時候XHR不能做點什麼使用它,或者你需要指定阿賈克斯選項(例如緩存:真)的飛行。方法提供抽象的不同層。
$.ajax()
爲您提供了Ajax請求完全控制。如果其他方法不滿足您的需求,您應該使用它。
$.get()
執行一個Ajax GET
請求。返回的數據(可以是任何數據)將傳遞給您的回調處理程序。
$(selector).load()
將執行Ajax GET
請求,並將設置所選返回數據(應該是文本或HTML)的內容。
這取決於你應該使用哪種方法。如果你想做簡單的事情,沒有必要打擾$.ajax()
。
E.g.如果返回的數據是JSON,需要進一步處理,則不會使用$.load()
。在這裏你可以使用$.ajax()
或$.get()
。
http://api.jquery.com/jQuery.ajax/
jQuery.ajax()
說明:執行一個異步HTTP(Ajax的)請求。
完整的monty,讓你做任何類型的Ajax請求。
http://api.jquery.com/jQuery.get/
jQuery.get()
描述:從使用HTTP GET請求中的服務器負載數據。
只允許您發出HTTP GET請求,需要少一點配置。
描述:從服務器加載數據,並把返回的HTML到匹配元素。
專門用於獲取數據並將其注入元素。
重要提示:jQuery的。負載()方法可以做到不僅GET而且POST請求,如果數據參數被提供(參見:http://api.jquery.com/load/)
數據類型:PlainObject或字符串的滑動對象或字符串通過請求發送到服務器。
請求方法POST如果數據作爲 對象提供,則使用此方法;否則,假設爲GET。
Example: pass arrays of data to the server (POST request)
$("#objectID").load("test.php", { "choices[]": [ "Jon", "Susan" ] });
大家都說得對。功能.load
,.get
和.post
是使用功能.ajax
的不同方式。個人而言,我發現.ajax原始函數非常令人困惑,並且更喜歡根據需要使用加載,獲取或發佈。
POST具有以下結構:
$.post(target, post_data, function(response) { });
GET有以下幾點:
$.get(target, post_data, function(response) { });
LOAD有以下幾點:
$(*selector*).load(target, post_data, function(response) { });
正如你所看到的,有小的差異在他們之間,因爲它的情況臨時t決定使用哪一個。需要將信息發送到內部文件?使用.post(這將是大多數情況下)。需要以這種方式發送信息,以便您可以提供指向特定時刻的鏈接?使用.get。它們都允許回調,您可以在其中處理文件的響應。
一個重要的注意事項是.load以兩種不同的方式行事。如果你只提供目標文件的url,它將作爲作爲get(和我說的行爲,因爲我使用默認的.load行爲測試了在被調用的PHP中檢查$_POST
,它檢測到$_POST
,而不是$_GET
;也許它會更準確地說,它充當.post而沒有任何爭論);然而,正如http://api.jquery.com/load/所說,一旦你爲函數提供了一個參數數組,它就會將這些信息發佈到文件中。無論是什麼情況,.load函數都會直接將信息插入到DOM元素中,這在很多情況下都非常清晰且非常直接;但如果你想在響應中做更多的事情,仍然會提供一個回調。此外,.load允許您從文件中提取某個代碼塊,從而使您可以將目錄(例如,保存在html文件中)以及直接將其片段(條目)檢索到DOM元素中。
大家都很好地解釋了這個話題。還有一點我想添加about.load()方法。
根據Load document如果您在數據url中添加了後綴選擇器,那麼它將不會在加載內容時執行腳本。
$(document).ready(function(){
$("#secondPage").load("mySecondHtmlPage.html #content");
})
在另一方面,在網址中刪除選擇後,在新的內容腳本運行。嘗試this example
在URL中的index.html文件
$(document).ready(function(){
$("#secondPage").load("mySecondHtmlPage.html");
})
刪除#內容後有在討論其他方法沒有提供這樣的內置功能。
兩者都用於發送一些數據並使用該數據接收一些響應。
GET:獲取存儲在服務器中的信息。 (即搜索,推特,人物信息)。如果你想發送信息,然後使用process.php?name=subroto
獲取請求發送請求,所以它基本上通過url發送信息。網址無法處理超過2036個字符。所以對於博客文章你能記得它不可能嗎?
POST:發佈與GET完全相同的東西。用戶註冊,用戶登錄,大數據發送,博客文章。 如果您需要發送安全信息,然後使用發佈或大數據,因爲它不通過網址。
AJAX:$.get()
和$.post()
包含是$.ajax()
子集功能。它有更多的配置。
$.get()
方法,這是一種簡寫爲$.ajax()
。當使用$.get()
時,不是傳入一個對象,而是傳入參數。至少需要前兩個參數,它們是要檢索的文件的URL(例如,test.txt)以及成功回調。
[$(「#id」).load和$ .ajax?之間的差異可能重複](http://stackoverflow.com/questions/2076642/difference-between-id-load-and-ajax) – Athafoud 2016-03-04 18:54:14