3

我想知道性能是否有任何差异(或根本不同)

这之间:

$(selector).load('page #myid');

$.get('page',function(data){
     $(selector).html( $(data).find('#myid') );
     /* depending the dom tree it should be .filter() */
})
4

1 回答 1

1

我想说使用load().get()更多地与您的意图和要求有关,而不是性能。

加载()


.load()用于轻松/简单地加载文档或其中的一部分。
它将加载完整的文档,然后使用innerHTML解析 HTML 以仅返回您感兴趣的部分。

如果您只需要一种将某些内容加载到 div 中的快速方法,那么$(element).load(url, selector)就是要走的路。我会假设load()为此进行了优化。

得到()


与 不同load().get()允许设置dataType更大的灵活性,例如跨域请求的 JSONP。

它还实现了promise接口,赋予它 a 的所有特性Deferred Object

从文档:

Promise 接口还允许 jQuery 的 Ajax 方法,包括 $.get(),在单个请求上链接多个 .done()、.fail() 和 .always() 回调,甚至可以在请求之后分配这些回调已经完成。如果请求已经完成,则立即触发回调。

概括


在非常基本的层面上,简单的.load(url, selector).get(url, callback). 使用任何一个都应该没问题。

我想,这里没有对错之分。使用任何适合您的需求。

问自己类似的问题:

你需要跨域(JSONP)吗?
你需要链.fail().done()等吗?
您需要任何没有的功能get()load()
...

如果您使用load()get()取决于您的要求。在这种情况下,性能是次要的。

于 2013-05-28T11:52:59.040 回答