明显的问题 - 为什么?
我需要从外部页表单元格获取,然后将其注入当前页面。使用复杂选择器。
这是.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()
更快?
答案 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”时间),然后与处理返回的数据相比如何?