YSLOW性能测试前端调优23大规则(14)AJAX使用Get请求
当AJAX将客户端请求发送到服务器时,我们会使用XMLHttpRequest对象的open()和send()方法。

open(method,url,async)

例:xmlhttp.open(“GET”,“chuansinfo.txt”,true)

send(string);

例:xmlhttp.send();

其实中method是指请求类型,通常我们的请求类型有两种:GET和POST。

在我们分析AJAX中到底是使用GET请求还是POST请求之前,我们必须先确定GET与POST的区别,GET与POST请求区别见表。
YSLOW性能测试前端调优23大规则(14)AJAX使用Get请求
GET请求会将数据添加到URL中,通过这种方式发送到服务器,通常会使用“?”代表URL地址的结尾与参数的开端,后面接的参数格式为“名称=值”,如果有多个参数,那么参数与参数之间使用“&”来区分。

POST请求是将数据放在HTTP HEADER中,其组织方式可以是“&”连接方式,也可以是分割符方式,并且参数是可隐藏的,相比于GET请求,POST请求发送大量数据会更方便。

但是我们不建议使用AJAX发送大量数据,因为这样不能节约时间,花费的时间会很长,我们建议将大量数据分成多个只传递少量数据的AJAX调用,这样可以提高性能。

所以我们不能单纯的通过发送数据量的大小来决定是使用GET还POST,而应该按到目的来选择,如果调用是要检索服务器上的数据则使用GET。如果检索的值会随时间和更新进程的改变而改变,则要在GET调用中添加一个时间参数,这样再次调用时就不会浏览器缓存中的数据而导致访问的信息出错,因为GET请求会在浏览器中进行缓存。当然如果发送的数据是任意的数据,那么可以使用POST请求。

雅虎邮箱团队发现一个现象,在使用XMLHttpRequest对像发送请求时,POST在浏览器中会分成两步来实现:首先发送头文件,然后再发送数据。所以最好使用GET,这样可以节约一些时间,因为GET只需要一个TCP数据包发送(除非有很多的cookie)。IE中最大的URL长度是2K,所以如果你发送的数据超过2K,你可能无法使用GET,当能可以分成多个少量数据的请求进行发送。

所以一般我们建议在使用AJAX发送请求时,我们通常使用GET发送请求信息。除非请求需要修改存储中的数据,如添加、更新、删除,或者是以其他方式更改服务器的状态,如创建文件等,这种情况下则使用POST请求。

相关文章:

  • 2021-11-24
  • 2022-12-23
  • 2021-09-19
  • 2021-05-17
  • 2022-12-23
  • 2021-09-08
  • 2022-12-23
猜你喜欢
  • 2021-07-28
  • 2021-10-02
  • 2021-11-19
  • 2021-09-14
  • 2021-10-15
  • 2021-04-25
  • 2021-08-24
相关资源
相似解决方案