jQuery:与load()相比,get()更慢

时间:2013-12-25 10:43:27

标签: javascript jquery

明显的问题 - 为什么?

我需要从外部页表单元格获取,然后将其注入当前页面。使用复杂选择器。

这是.load()

$('#check').load('https://bla-bla-bla .small:contains(Something)+.small:lt(1)');

这是.get()

function showGetResult()
{
     var result = null;
     var scriptUrl = "https://bla-bla-bla";
     $.get(scriptUrl, function(data) {
            result = $(".small:contains(Something)", data).next().html() || "Error";
            $('#check').append(result);
     });
}

load()获得的数据平均增加1-2秒。但我喜欢get() - 因为我可以有字符串结果,而不是对象。

有人可以解释为什么load()更快?

1 个答案:

答案 0 :(得分:1)

因为我很想自己找到答案,所以我觉得提供一些资源可以提供帮助:


AJAX jQuery.load versus jQuery.get

  

首先,这两个功能完全不同。 'load'函数与选择器一起工作,并在所选组内加载AJAX调用的结果,回调是处理调用的“oncomplete”事件;而$ .get函数更通用,回调处理AJAX调用的成功响应,您可以自由定义所需的任何行为。您只需查看jQuery框架的文档和规范即可找到所有这些信息。


Difference between $.ajax() and $.get() and $.load()

  

$.get()只是$.ajax()的简写,但摘要了一些   配置远,为它设置合理的默认值   隐藏你。将数据返回给回调。它只允许   因此GET请求伴随着类似的$.post()函数   抽象,仅适用于POST

     

.load()$.get()类似,但增加了允许您使用的功能   定义文档在何处插入返回的数据。   因此,实际上只有在调用只会导致HTML时才可用。   它被称为与其他全局呼叫略有不同   是一个绑定到特定jQuery包装的DOM元素的方法。   因此,人们会这样做:$('#divWantingContent').load(...)


似乎$.get$.load都使用$.ajax功能,但方式不同。也许性能差异在于解析返回数据所花费的时间?

也许真正的问题是,将这些请求发送到外部URL需要多长时间(“ping”时间),然后与处理返回的数据相比如何?