我想知道是否有在性能比較任何區別(或差的話)
介於此:
$(selector).load('page #myid');
和
$.get('page',function(data){
$(selector).html($(data).find('#myid'));
/* depending the dom tree it should be .filter() */
})
我想知道是否有在性能比較任何區別(或差的話)
介於此:
$(selector).load('page #myid');
和
$.get('page',function(data){
$(selector).html($(data).find('#myid'));
/* depending the dom tree it should be .filter() */
})
我會說使用load()或.get()是更多的是與你的意圖和要求,而比表現。
負載()
是爲一個文件,容易/簡單的加載或它的一部分。
這將加載完整的文檔,然後使用innerHTML
解析HTML只返回部分你感興趣的內容。
如果你只需要加載一些內容到一個div然後$(element).load(url, selector)
的快速方法是要走的路。我會假設load()
就是爲此而優化的。
獲取()
不同於load()
,.get()
允許dataType
更大的靈活性的設定如JSONP跨域請求。
它還實現promise
接口,給它一個Deferred Object
的所有功能。
從文檔:
無極接口也允許jQuery的Ajax的方法,包括 $獲得(),把多個.done(),.fail(),和。總是()回調 ,甚至在 請求可能已經完成後分配這些回調。如果請求已完成,則立即觸發 回調。
摘要
在一個非常基本的水平,應該是沒有價值,而一個簡單的.load(url, selector)
和.get(url, callback)
之間的性能差異。使用兩者應該沒問題。
我會認爲,這裏沒有對錯之分。使用任何適合您需要的東西。
問自己問題類似:
你需要跨域(JSONP)?
您需要連鎖.fail()
,.done()
等?
您是否需要load()
沒有的任何功能get()
?
...
如果您使用load()
或get()
取決於您的要求。在這種情況下性能是次要的。
但是整個文檔都必須下載......可以說在一個案例中。只需要一個選擇器 –
你是什麼意思「不讓你傳遞數據對象」?你是否說'.load()'不能執行'POST'? –
@ToniMichelCaubet:他們都讓你傳遞數據。我在發帖之前忘了從我的模板中刪除這些內容。爲此道歉。我想編輯我的帖子,突出顯示'load()'和'get()'之間的更多區別,以便更清楚地說明主要關注點應該放在「哪種方法滿足我的需求」上,並且只考慮次要性能。例如,如果您需要進行跨域調用或需要使用延遲對象等,則沒有必要使用「load()」快速調用。希望這是有道理的。沒有對錯之分。你使用任何適合你需要的東西。 – Nope
@Alexander Sagen很好地描述了它在http://stackoverflow.com/questions/3870086/difference-between-ajax-and-get-and-load –
這兩個例子幾乎都會做同樣的事情,參見。 [源代碼](https://github.com/jquery/jquery/blob/master/src/ajax.js#L133),即將響應解析爲HTML,應用選擇器並將結果插入到DOM中。我猜測性能差異可以忽略不計。 – jensgram
我想知道這一點。在我的經驗中,load()比自己「解析」結果要快。 – powerbuoy