jQuery .getJSON vs .post哪一个更快?

运用

$.getJSON(); 

要么

  $.post(); 

我正在尝试通过一个仅用于AJAX请求的页面发送一些参数,并在JSON或html片段中获得一些结果。

我想知道的是哪一个更快?

假设HTML文件只是简单的布尔文本(true或false)

正如其他人所说,这两个函数之间没有真正的区别,因为它们都将由XMLHttpRequest发送。

如果服务器使用相同的代码处理两个请求,则处理时间应该相同。

因此,问题可以转换为哪一个更快的HTTP GET请求或POST请求?

因为POST请求需要两个额外的HTTP头( Content-TypeContent-Length ),与GET请求相比,后者应该更快(因为传输的数据更少)。

但这只是速度,我认为最好遵循这里的REST指南。 如果要修改某些内容,请使用POST,如果要获取内容,请使用GET。

另外一个重要的事情是,GET响应可以被缓存,但是我在缓存POST时遇到了问题 。

我不认为它会有所作为使用ajax.post使用http post请求加载数据,其中getJSON使用http get请求更多你不必明确告诉getJSON dataType

如果它是从服务器检索数据而不持久(更新)任何内容的HTTP操作,则GET是要使用的正确语义。

发布和使用HTTP都会使性能差异可以忽略不计,特别是考虑到WAN通信的变量。

它们都是jQuery.ajax的包装器/速记方法,因此不会有性能差异。

这是旧的,但……

我们都必须记住:CSRF / XSRF。

如果你这样做:

 $就({
    类型:“POST”, 
     dataType:“json”,
    url:url 
    数据:{
    令牌:'pass-some-security-token-here'
     },
     cache:false,
    成功:函数(数据){
     //在这里做你的东西
     }
 });

你可以像这样收到它,使大多数CSRF / XSRF无效

 if(isset($ _ POST ['token'])){//您还可以进一步测试令牌
     //做你的东西并发回结果
 } else {
     //错误:抱歉,无效或没有安全令牌
 }

在许多情况下,GET是对坏人的邀请,因为getJSON使用GET HTTP请求。

$.getJSON() ; 是$.ajax();的快捷方式$.ajax(); 它也调用$.post(); 所以你不会看到太大的区别(但直接使用$.getJSON()会更容易)。

请参阅jquery doc

[编辑] NimChimpsky比我快……