$.ajax()
和之间有什么区别$.get()
和有$.load()
什么?
在哪个条件下使用哪个更好?
Answers:
$.ajax()
是最可配置的,您可以在其中对HTTP标头等进行精细控制。您还可以使用此方法直接访问XHR对象。还提供了更细粒度的错误处理。因此可能会更复杂并且通常没有必要,但有时非常有用。您必须自己通过回调处理返回的数据。
$.get()
只是它的简写,$.ajax()
但抽象了一些配置,为隐藏的内容设置了合理的默认值。将数据返回到回调。它仅允许GET请求,因此附有$.post()
用于类似抽象的功能,仅适用于POST
.load()
与相似,$.get()
但增加了功能,可让您定义返回的数据将在文档中插入的位置。因此,仅在调用仅会导致HTML时才真正可用。它的调用方式与其他全局调用略有不同,因为它是绑定到特定的jQuery包装的DOM元素的方法。因此,可以这样做:$('#divWantingContent').load(...)
应当指出的是,所有的$.get()
,$.post()
,.load()
是所有只是包装$.ajax()
,因为它的内部调用。
jQuery的Ajax文档中的更多详细信息:http : //api.jquery.com/category/ajax/
http://api.jquery.com/jQuery.ajax/
jQuery.ajax()
描述:执行异步HTTP(Ajax)请求。
全额费用,使您可以提出任何种类的Ajax请求。
http://api.jquery.com/jQuery.get/
jQuery.get()
说明:使用HTTP GET请求从服务器加载数据。
只允许您发出HTTP GET请求,所需的配置要少一些。
.load()
说明:从服务器加载数据并将返回的HTML放入匹配的元素。
专门用于获取数据并将其注入到元素中。
重要说明: 如果提供了data参数,则jQuery.load()方法不仅可以执行GET请求,还可以执行POST请求(请参阅:http : //api.jquery.com/load/)
数据类型:PlainObject或String与请求一起发送到服务器的普通对象或字符串。
请求方法如果将数据作为对象提供,则使用POST方法。否则,假定为GET。
Example: pass arrays of data to the server (POST request)
$( "#objectID" ).load( "test.php", { "choices[]": [ "Jon", "Susan" ] } );
每个人都对。功能.load
,.get
和.post
,是使用功能的不同方法.ajax
。
就个人而言,我发现.ajax原始函数非常令人困惑,并且更喜欢根据需要使用load,get或post。
POST具有以下结构:
$.post(target, post_data, function(response) { });
GET具有以下内容:
$.get(target, post_data, function(response) { });
LOAD具有以下内容:
$(*selector*).load(target, post_data, function(response) { });
如您所见,它们之间几乎没有差异,因为它的情况决定了要使用哪个。需要在内部将信息发送到文件吗?使用.post(大多数情况下)。是否需要以可以提供指向特定时刻的链接的方式发送信息?使用.get。它们都允许在回调中处理文件的响应。
重要说明是.load以两种不同的方式起作用。如果你只提供目标文档的URL,它会起到一个GET(我说的行动,因为我测试检查$_POST
中被称为PHP在使用默认.load行为和检测$_POST
,而不是$_GET
;也许这将是更精确说它充当.post而没有任何参数);但是,如http://api.jquery.com/load/说,一旦为函数提供了参数数组,它将把信息发布到文件中。无论如何,.load函数都会将信息直接插入到DOM元素中,在许多情况下,该元素非常清晰,直接。但是如果您想对响应做更多的事情,它仍然提供回调。此外,.load允许您从文件中提取特定的代码块,从而使您可以将目录保存在例如html文件中,并直接将其部分(项目)检索到DOM元素中。
$.get = $.ajax({type: 'GET'});
$.load()
是一个辅助函数,只能在元素上调用。
$.ajax()
给您最大的控制权。您可以指定是否要发布数据,获取更多回调等。
两者都用于发送一些数据并使用该数据接收一些响应。
GET:获取存储在服务器中的信息。(即搜索,鸣叫,人员信息)。如果要发送信息,则使用来获取请求发送请求。process.php?name=subroto
因此,它基本上是通过url发送信息。网址最多只能处理2036个字符。因此,对于博客帖子,您还记得这是不可能的吗?
POST:POST与GET执行相同的操作。用户注册,用户登录,大数据发送,博客文章。如果您需要发送安全信息,请使用post或大数据,因为它们不会通过url。
AJAX:$.get()
并$.post()
包含作为的子集的功能$.ajax()
。它具有更多配置。
$.get ()
方法,是的一种简写$.ajax()
。使用时$.get ()
,您传递参数而不是传递对象。至少,您需要前两个参数,这是您要检索的文件的URL(例如test.txt)和成功回调。
每个人都很好地解释了这个话题。我想补充一点关于.load()方法。
根据加载文档, 如果您在数据url中添加后缀选择器,则它将不执行加载内容中的脚本。
$(document).ready(function(){
$("#secondPage").load("mySecondHtmlPage.html #content");
})
另一方面,删除url中的选择器后,将运行新内容中的脚本。试试这个例子
在index.html文件的url中删除#content之后
$(document).ready(function(){
$("#secondPage").load("mySecondHtmlPage.html");
})
讨论中其他方法没有提供这种内置功能。