$. ajax ()和 $. get ()和 $. load ()之间的区别

$.ajax()$.get()$.load()的区别是什么?

在什么条件下使用哪种方法更好?

112999 次浏览
$.get = $.ajax({type: 'GET'});

$.load()是一个辅助函数,只能在元素上调用。

$.ajax()给你最多的控制。你可以指定如果你想 POST 数据,得到更多的回调等。

很简单,但是

  • $.load(): 将一段 html 加载到容器 DOM 中。
  • $.get(): 如果你想打一个 走开电话并广泛使用响应,可以使用这个。
  • $.post(): 如果您希望进行 职位调用并且不希望将响应加载到某个容器 DOM,那么可以使用这个函数。
  • $.ajax(): 如果需要在 XHR 失败时执行某些操作,或者需要动态指定 ajax 选项(例如 cache: true) ,则使用此选项。

这些方法提供了不同的抽象层。

  • $.ajax()使您能够完全控制 Ajax 请求。如果其他方法不能满足您的需要,您应该使用它。

  • $.get()执行 Ajax GET请求。返回的数据(可以是任何数据)将传递给回调处理程序。

  • $(selector).load()将执行一个 Ajax GET请求,并设置所选返回数据的内容(应该是文本或 HTML)。

这取决于您应该使用哪种方法的情况。如果你想做简单的东西,没有必要与 $.ajax()打扰。

例如,如果返回的数据是需要进一步处理的 JSON,则不会使用 $.load()。在这里你可以使用 $.ajax()或者 $.get()

Http://api.jquery.com/jquery.ajax/

jQuery.ajax()

描述: 执行异步 HTTP (Ajax)请求。

完整的 Monty 允许您发出任何类型的 Ajax 请求。


Http://api.jquery.com/jquery.get/

jQuery.get()

描述: 使用 HTTPGET 请求从服务器加载数据。

只允许您发出 HTTPGET 请求,需要的配置少一些。


Http://api.jquery.com/load/

.load()

描述: 从服务器加载数据并将返回的 HTML 放入匹配的元素中。

专门用于获取数据并将其注入到元素中。

$.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/

重要提示: 如果提供了 资料参数,那么 Load ()方法不仅可以处理 走开请求,还可以处理 职位请求(参见: http://api.jquery.com/load/)

Data Type: PlainObject 或 String 随请求发送到服务器的普通对象或字符串。

请求方法如果数据作为 对象; 否则假定为 走开

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) { });

负载情况如下:

$(*selector*).load(target, post_data, function(response) { });

正如您所看到的,它们之间几乎没有什么区别,因为决定使用哪一个的是 情况。需要在内部将信息发送到文件中吗?使用。后(这将是大多数情况下)。需要发送信息的方式,你可以提供一个链接到特定的时刻?使用。走开。它们都允许回调,您可以在其中处理文件的响应。

重要的一点是。载荷以两种不同的方式作用。如果您只提供目标文档的 url,那么它将 行动作为 get (我说 act 是因为我在使用 default 时在被调用的 PHP 中测试了检查 $_POST。负载行为,它检测 $_POST,而不是 $_GET; 也许更准确地说,它作为。但是,正如 http://api.jquery.com/load/所说,一旦为函数提供了一个参数数组,它就会将信息发送到文件。不管是什么案子。Load 函数将直接将信息插入到 DOM 元素中,在许多情况下,DOM 元素非常清晰、非常直接; 但是如果您想对响应进行更多操作,它仍然提供了回调。另外。Load 允许您从文件中提取特定的代码块,使您可以保存目录(例如,在 html 文件中) ,并将其片段(项目)直接检索到 DOM 元素中。

每个人都很好地解释了这个主题。还有一点我想补充一下 about. load ()方法。

根据 载入文件,如果你在 data url 中添加后缀选择器,那么它将不会在加载内容时执行脚本。

工作的普朗克

            $(document).ready(function(){
$("#secondPage").load("mySecondHtmlPage.html #content");
})

另一方面,在删除 url 中的选择器后,将运行新内容中的脚本

删除 index.html 文件中 url 中的 # content 之后

            $(document).ready(function(){
$("#secondPage").load("mySecondHtmlPage.html");
})

讨论中的其他方法没有提供这样的内置特性。

两者都用于发送一些数据并使用该数据接收一些响应。

GET : 获取存储在服务器中的信息。(即搜索、推特、人物信息)。如果你想发送信息,然后得到请求发送请求使用 process.php?name=subroto所以它基本上通过网址发送信息。Url 不能处理超过2036 char。所以对于博客文章你能记住这是不可能的吗?

POST : POST 做和 GET 一样的事情。用户注册,用户登录,大数据发送,Blog POST。 如果您需要发送安全信息,然后使用邮件或大数据,因为它不通过网址。

AJAX : $.get()$.post()包含 $.ajax()的子集特性。

$.get ()方法,它是 $.ajax()的一种简写。使用 $.get ()时,不传入对象,而是传入参数。至少需要前两个参数,它们是要检索的文件的 URL (例如,。Txt)和成功回调。