$(selector).load('page.html #id')vs $ .get和filter / find #id

时间:2013-05-28 11:37:59

标签: jquery ajax performance get load

我想知道性能(或完全不同)

之间:

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

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

1 个答案:

答案 0 :(得分:1)

我认为使用load().get()更多的是与您的意图和要求有关,而不是表现。

<强>加载()


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

如果您只需要快速将某些内容加载到div中,那么$(element).load(url, selector)就是您的选择。我认为load()已针对此进行了优化。

获取()


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

它还实现了promise界面,为其提供了Deferred Object的所有功能。

来自文档:

  

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

<强>摘要


在最基本的层面上,简单的.load(url, selector).get(url, callback)之间应该没有性价比差异。使用其中任何一个都应该没问题。

我想,这里没有对错。使用适合您需求的东西。

问自己类似的问题:

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

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