Jquery $(slector).load(';page.html#id';)与$get和filter/find#id

Jquery $(slector).load(';page.html#id';)与$get和filter/find#id,jquery,ajax,performance,get,load,Jquery,Ajax,Performance,Get,Load,我想知道在性能方面是否有任何差异(或者根本没有差异) 在此之间: $(selector).load('page #myid'); 及 我想说,使用or更多地与您的意图和需求有关,而不是与性能有关 加载() .load()用于轻松/简单地加载文档或其一部分。 它将加载完整的文档,然后使用innerHTML解析HTML,只返回您感兴趣的部分 如果您只需要快速地将某些内容加载到div中,那么$(元素)。加载(url,选择器)就是一种方法。我想,load()就是为此而优化的 Get() 与load

我想知道在性能方面是否有任何差异(或者根本没有差异)

在此之间:

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

我想说,使用or更多地与您的意图和需求有关,而不是与性能有关

加载()


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

如果您只需要快速地将某些内容加载到div中,那么
$(元素)。加载(url,选择器)
就是一种方法。我想,
load()
就是为此而优化的

Get()


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

它还实现了
promise
接口,为它提供了
延迟对象
的所有特性

从文档中:

Promise接口还允许jQuery的Ajax方法,包括 $.get(),以链接多个.done()、.fail()和.always()回调 在单个请求上,甚至在 请求可能已完成。如果请求已完成,则 回调将立即启动

摘要


在一个非常基本的层面上,简单的
.load(url,选择器)
.get(url,回调)
之间应该没有什么值得注意的性能差异。使用任何一种都可以

我认为,这本身没有对错之分。使用任何适合你需要的东西

问自己类似以下的问题:

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


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

@Alexander Sagen在这两个示例中都很好地描述了这一点,并且会做同样的事情,例如,将响应解析为HTML,应用选择器并将结果插入DOM。我想性能差异可以忽略不计。我也想知道这一点。根据我的经验,load()比自己“解析”结果要快。但很明显,这可能只是我的想象。没有明显的区别,特别是考虑到大部分时间都花在执行请求上。但无论如何,整个文档都必须下载。。。让我们用一个例子来说明。如果只需要一个选择器,“不允许传递数据对象”是什么意思?您是说
.load()
无法执行
POST
?@tonimichelcaubit:它们都允许您传递数据。在我点击帖子之前,我忘了从我的模板中删除它们。为此道歉。我想编辑我的帖子,突出显示
load()
get()
之间的更多区别,以便更清楚地表明,主要关注点应该是“哪种方法满足我的需求”,而只关注性能。例如,如果您需要进行跨域调用或需要使用延迟对象等,则没有必要进行fast
load()
调用。希望这有意义。没有对错之分。你可以使用任何适合你需要的东西。@TonimichelCaubit:我唯一能想到的是,如果你想从一个文档中获得多个部分,那么回调中一个带有
find()
get()
get()比多个
load()
请求要好。是@Jack询问了数据对象的问题
$.get('page',function(data){
     $(selector).html( $(data).find('#myid') );
     /* depending the dom tree it should be .filter() */
})