2009-08-07 68 views
15

在使用jQuery进行AJAX调用时,应该使用load(url,data,callback)方法与jQuery.get(url,data,callback,type)方法吗?AJAX jQuery.load与jQuery.get

+1

更多:http://stackoverflow.com/questions/3870086/difference-between-ajax-and-get-and-load – cregox 2015-03-13 10:46:31

回答

20

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

Here你可以找到一个很好的文档。

8

加载将数据直接注入到DOM中。如果您不需要这种行为,请使用get。

-1

只需查看jQuery代码即可查看。 反正所有呼叫必须达到同样的方法,但根据不同的需要

15

@阿尔乔姆的答案似乎是缺少事实load是一个更通用的功能比get不同的方式做出回应。 根据jQuery API docs,负载使用getpost,具体取决于数据。这里引用它:

请求方法

如果数据被作为一个对象提供使用POST方法;否则,假定为GET。

所以从服务器&获取部分HTML内容将其插入DOM的目的,loadget方法更好的方法,因为开发者不需要担心处理庞大的数据&各种中间在插入内容之前取出&之前加载函数执行的步骤。

举例来说,如果你需要加载一个网页的部分内容,你可以使用下面的表达式: $('#result').load('ajax/test.html #container');

这检索的AJAX/test.html中的内容,但随后jQuery解析返回找到ID为container的元素。将此元素及其内容插入元素ID为result的元素中,并放弃检索到的其他文档。

有一点要记住的是,当你只需要一个GET请求,避免提供一个对象的数据参数&改用$.param方法来获得请求参数的序列化形式。

+0

相反,我建议使用数据参数来保持结构和数据分离。对于简单的查询,使用字符串连接('id ='+ id'),对于更复杂的东西使用对象和param方法('.param(object)'或'$ .param({id:id,foo:bar })') – Deebster 2012-10-08 15:39:01

+0

@Deebster我认为更简单的情况。我知道$ .param对于复杂场景更好。我编辑了答案。谢谢。 – Sujay 2012-10-08 15:56:09