$ .ajax()和$ .get()和$ .load()之间的区别
$.ajax()
和$.get()
和$.load()
之间的区别是什么?
哪个更好用,在什么条件下使用?
$.ajax()
是最可配置的一个,您可以通过HTTP头等进行细粒度控制。您也可以使用此方法直接访问XHR对象。还提供了更细粒度的错误处理。因此可能会更复杂,往往不必要,但有时非常有用。你必须用回调自己处理返回的数据。
$.get()
只是$.ajax()
的简写,但会将一些配置摘要消除,为您隐藏的内容设置合理的默认值。将数据返回给回调。它只允许GET-请求,因此伴随着$.post()
功能类似的抽象,只为POST
类似于$.get()
但增加了功能,它允许您定义在文档中返回的数据将被插入。因此,只有当调用只会导致HTML时才真正可用。它被称为与其他全局调用略有不同,因为它是绑定到特定jQuery包装的DOM元素的方法。因此,一个会做:$('#divWantingContent').load(...)
应当注意的是,所有$.get()
,$.post()
,都是为了$.ajax()
只是包装,因为它的内部调用。
的jQuery的Ajax的文档中的更多细节:http://api.jquery.com/category/ajax/
是否有任何性能差异? – 2015-09-19 12:57:02
@UzairAli不,它从字面上把你传递给它的变量用来执行jQuery.ajax() – lisburnite 2016-12-14 12:58:57
好的,.load()只是纯HTML,而.get()对于更多的事情是有用的。 – 2017-07-31 20:46:56
$.get = $.ajax({type: 'GET'});
$.load()
是一个辅助函数,它只能在元素上调用。
$.ajax()
为您提供了最大程度的控制。如果您想发表的数据,你可以指定,得到了更多的回调等
非常基本的,但
-
$.load()
:加载一张的HTML到容器DOM中。 -
$.get()
:如果你想使一个GET通话,并与广泛的响应发挥使用此功能。 -
$.post()
:如果你想使一个POST电话,不希望加载某些容器DOM的响应使用此功能。 -
$.ajax()
:如果您需要的时候XHR不能做点什么使用它,或者你需要指定阿贾克斯选项(例如缓存:真)的飞行。
方法提供抽象的不同层。
$.ajax()
为您提供了Ajax请求完全控制。如果其他方法不满足您的需求,您应该使用它。$.get()
执行一个AjaxGET
请求。返回的数据(可以是任何数据)将传递给您的回调处理程序。$(selector).load()
将执行AjaxGET
请求,并将设置所选返回数据(应该是文本或HTML)的内容。
这取决于你应该使用哪种方法。如果你想做简单的事情,没有必要打扰$.ajax()
。
E.g.如果返回的数据是JSON,需要进一步处理,则不会使用$.load()
。在这里你可以使用$.ajax()
或$.get()
。
http://api.jquery.com/jQuery.ajax/
jQuery.ajax()
说明:执行一个异步HTTP(Ajax的)请求。
完整的monty,让你做任何类型的Ajax请求。
http://api.jquery.com/jQuery.get/
jQuery.get()
描述:从使用HTTP GET请求中的服务器负载数据。
只允许您发出HTTP GET请求,需要少一点配置。
描述:从服务器加载数据,并把返回的HTML到匹配元素。
专门用于获取数据并将其注入元素。
重要提示:jQuery的。负载()方法可以做到不仅GET而且POST请求,如果数据参数被提供(参见:http://api.jquery.com/load/)
数据类型:PlainObject或字符串的滑动对象或字符串通过请求发送到服务器。
请求方法POST如果数据作为 对象提供,则使用此方法;否则,假设为GET。
Example: pass arrays of data to the server (POST request)
$("#objectID").load("test.php", { "choices[]": [ "Jon", "Susan" ] });
大家都说得对。功能.load
,.get
和.post
是使用功能.ajax
的不同方式。个人而言,我发现.ajax原始函数非常令人困惑,并且更喜欢根据需要使用加载,获取或发布。
POST具有以下结构:
$.post(target, post_data, function(response) { });
GET有以下几点:
$.get(target, post_data, function(response) { });
LOAD有以下几点:
$(*selector*).load(target, post_data, function(response) { });
正如你所看到的,有小的差异在他们之间,因为它的情况临时t决定使用哪一个。需要将信息发送到内部文件?使用.post(这将是大多数情况下)。需要以这种方式发送信息,以便您可以提供指向特定时刻的链接?使用.get。它们都允许回调,您可以在其中处理文件的响应。
一个重要的注意事项是.load以两种不同的方式行事。如果你只提供目标文件的url,它将作为作为get(和我说的行为,因为我使用默认的.load行为测试了在被调用的PHP中检查$_POST
,它检测到$_POST
,而不是$_GET
;也许它会更准确地说,它充当.post而没有任何争论);然而,正如http://api.jquery.com/load/所说,一旦你为函数提供了一个参数数组,它就会将这些信息发布到文件中。无论是什么情况,.load函数都会直接将信息插入到DOM元素中,这在很多情况下都非常清晰且非常直接;但如果你想在响应中做更多的事情,仍然会提供一个回调。此外,.load允许您从文件中提取某个代码块,从而使您可以将目录(例如,保存在html文件中)以及直接将其片段(条目)检索到DOM元素中。
大家都很好地解释了这个话题。还有一点我想添加about.load()方法。
根据Load document如果您在数据url中添加了后缀选择器,那么它将不会在加载内容时执行脚本。
$(document).ready(function(){
$("#secondPage").load("mySecondHtmlPage.html #content");
})
在另一方面,在网址中删除选择后,在新的内容脚本运行。尝试this example
在URL中的index.html文件
$(document).ready(function(){
$("#secondPage").load("mySecondHtmlPage.html");
})
删除#内容后有在讨论其他方法没有提供这样的内置功能。
两者都用于发送一些数据并使用该数据接收一些响应。
GET:获取存储在服务器中的信息。 (即搜索,推特,人物信息)。如果你想发送信息,然后使用process.php?name=subroto
获取请求发送请求,所以它基本上通过url发送信息。网址无法处理超过2036个字符。所以对于博客文章你能记得它不可能吗?
POST:发布与GET完全相同的东西。用户注册,用户登录,大数据发送,博客文章。 如果您需要发送安全信息,然后使用发布或大数据,因为它不通过网址。
AJAX:$.get()
和$.post()
包含是$.ajax()
子集功能。它有更多的配置。
$.get()
方法,这是一种简写为$.ajax()
。当使用$.get()
时,不是传入一个对象,而是传入参数。至少需要前两个参数,它们是要检索的文件的URL(例如,test.txt)以及成功回调。
[$(“#id”).load和$ .ajax?之间的差异可能重复](http://stackoverflow.com/questions/2076642/difference-between-id-load-and-ajax) – Athafoud 2016-03-04 18:54:14