Javascript 使用jQuery向服务器发出请求

Javascript 使用jQuery向服务器发出请求,javascript,ajax,jquery,Javascript,Ajax,Jquery,有几种方法可以使用jQuery向服务器发出请求 .load() .post() .get() .ajax() 为了在整个应用程序中保持一致性,我总是使用.ajax() 但我想知道这是否真的是一个好方法 所以。。。是吗?其他方法(post、load和get)只是调用ajax方法的简写方式,因此这是一个风格/惯例问题。在整个应用程序中使用ajax没有错。。我会接受这个建议 如果我必须对get、post和ajax进行一个小小的类比,你就可以为自己买一辆完整的汽车,它有一个友好的界面(踏板、方向盘等),

有几种方法可以使用jQuery向服务器发出请求

.load()

.post()

.get()

.ajax()

为了在整个应用程序中保持一致性,我总是使用
.ajax()

但我想知道这是否真的是一个好方法


所以。。。是吗?

其他方法(
post
load
get
)只是调用
ajax
方法的简写方式,因此这是一个风格/惯例问题。

在整个应用程序中使用ajax没有错。。我会接受这个建议

如果我必须对get、post和ajax进行一个小小的类比,你就可以为自己买一辆完整的汽车,它有一个友好的界面(踏板、方向盘等),所以你不必自己动手

$.get、$.post等用于更高级别的抽象,这些抽象通常更易于理解和使用,但没有提供那么多功能(例如错误回调)

总结如下:

$.load(): Load a piece of html into a container DOM.
$.get(): Use this if you want to make a GET call and play extensively with the response.
$.post(): Use this if you want to make a POST call and don’t want to load the response to some container DOM.
$.ajax(): Use this if you need to do something when XHR fails, or you need to specify ajax options (e.g. cache: true) on the fly.

希望这是有道理的。

这只是偏好的问题,我自己从来没有使用过这些捷径

.load()、.post()、.get()
,都是短工,内部都依赖于
$.ajax

为了测试它们都在内部调用
$.ajax
,您可以如下所示对
$.ajax
进行黑客攻击

var capturedAjax= $.ajax;

$.ajax=function myCustomAjax(options)
{
     options.beforeSend=function()
     {
        alert('before send captured');
     }
     return capturedAjax(options);
}

 jQuery.get('http://google.com');   

限制自己只使用
.ajax()
是个坏主意。下面用一个类比来解释原因:

Anna和Joe每人都有一个工具箱,里面有一个带各种附件的一体化工具、一个砂带打磨机、一个电钻、一把台锯和一堆螺丝。他们都需要使用他们可以使用的工具和充足的木材来建造一个木柜。Joe决定使用一体化工具,只需根据需要更改附件即可。然而,Anna意识到使用为特定目的而设计的工具来构建机柜将更容易、更快,并决定不使用一体式工具来完成所有工作。Anna能够在更短的时间内建造一个更好的橱柜,因为她选择使用为特定目的而设计的工具,而不是一体式工具

Simulation更新为比较一体式工具和多个专用工具,更准确地反映了ajax与get、post和load的比较。谢谢你的建议


如果您不介意额外的代码行,那就好了。..get、.post、.getAjax都是使用的速记助手。ajax如果Joe不使用锤子,而是使用一些很棒的多功能工具呢?:)有点像瑞士军刀:你知道,一体式工具可以更好地进行类比。我会更新我的帖子。但是Anna意识到她的每一个单一用途的工具实际上都和Joe的完全一样,只是所有其他的附件都断开或用胶带封住了。她去了酒吧,点了一杯饮料,然后思考了一会儿。