优化网站设计(十六):为AJAX请求使用GET方法

前言

网站设计的优化是一个很大的话题,有一些通用的原则,也有针对不同开发平台的一些建议。这方面的研究一直没有停止过,我在不同的场合也分享过这样的话题。

作为通用的原则,雅虎的工程师团队曾经给出过35个最佳实践。这个列表请参考  Best Practices for Speeding Up Your Web Sitehttp://developer.yahoo.com/performance/rules.html,同时,他们还发布了一个相应的测试工具Yslow http://developer.yahoo.com/yslow/

我强烈推荐所有的网站开发人员都应该学习这些最佳实践,并结合自己的实际项目情况进行应用。 接下来的一段时间,我将结合ASP.NET这个开发平台,针对这些原则,通过一个系列文章的形式,做些讲解和演绎,以帮助大家更好地理解这些原则,并且更好地使用他们。

准备工作

为了跟随我进行后续的学习,你需要准备如下的开发环境和工具

  1. Google Chrome 或者firefox ,并且安装 Yslow这个扩展组件.请注意,这个组件是雅虎提供的,但目前没有针对IE的版本。
    1. https://chrome.google.com/webstore/detail/yslow/ninejjcohidippngpapiilnmkgllmakh
    2. https://addons.mozilla.org/en-US/firefox/addon/yslow/
    3. 你应该对这些浏览器的开发人员工具有所了解,你可以通过按下F12键调出这个工具。
  2. Visaul Studio 2010 SP1 或更高版本,推荐使用Visual Studio 2012
    1. http://www.microsoft.com/visualstudio/eng/downloads
  3. 你需要对ASP.NET的开发基本流程和核心技术有相当的了解,本系列文章很难对基础知识做普及。

本文要讨论的话题

这一篇我和大家讨论的是第十六条原则:Use GET for Ajax Requests (为AJAX请求使用GET方法)

我在之前的一篇文章中讨论到了AJAX (优化网站设计(十四):使AJAX调用尽可能利用缓存特性) , 在那篇文章中,我们探讨到了POST和GET这两种方式,对于AJAX利用缓存特性而言,是有不同的。

  1. POST请求,不能使用客户端缓存
  2. GET请求,可以使用客户端缓存(而且只要地址一样,它总是会使用客户端缓存)

从这个意义上说,使用GET会比POST而言,有更好的一个性能表现。(因为减少了请求数和数据的重复传输)。

与此同时,这条原则也提到另外一个有价值的信息:

when using XMLHttpRequest, POST is implemented in the browsers as a two-step process: sending the headers first, then sending data. So it's best to use GET, which only takes one TCP packet to send (unless you have a lot of cookies).

在使用XMLHttpRequest(目前的AJAX都是基于它实现的)的时候,如果Method是POST,则浏览器实际上会有两个步骤,先发送头部信息,然后再发送数据(这个由于是浏览器行为,目前我这边也没有办法提供验证的方式)。但如果是使用GET的话,则只有一个TCP的包发送出去(除非有大量的Cookie),这样无疑可以提高性能。

【备注】一个TCP包的尺寸大约为1452字节。

当然,现实的项目中,并不是总能使用GET的,例如长度方面可能会有限制:

The maximum URL length in IE is 2K, so if you send more than 2K data you might not be able to use GET.

如果使用GET,还需要考虑版本更新的问题。这个在优化网站设计(十四):使AJAX调用尽可能利用缓存特性 中我已经提到过了。

 

实际上,除了POST,GET之外,HTTP协议还定义了其他一些方法(method),它们中的某一些还特别有用,有兴趣的朋友可以参考 http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html


文章来源:http://www.cnblogs.com/chenxizhang/archive/2013/05/12/3073891.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
前台: (1)注册登录模块:按照学校的相关规定进行注册和登录。 (2)招聘信息查看:高校毕业生们可以网站首页上查看所有的招聘信息,除此之外还可以输入公司名称或岗位名称进行搜索。 (3)用人单位模块:此模块为宣传用人单位的主要功能模块,具体包括用人单位简介、岗位需求及职责及公司介绍等功能。 (4)就业指导:学生朋友们在就业前可以通过此模块获取指导。 (5)新闻信息:为了让用户们可以了解到最新的新闻动态,本系统可以通过新闻信息查看功能阅读近期的新闻动态。 (6)在线论坛:毕业季的同学们可以通过此模块相互交流。 后台: (1)系统用户管理模块:可以查看系统内的管理员信息并进行维护。 (2)学生管理模块:通过此功能可以添加学生用户,还可以对学生信息进行修改和删除。 (3)用人单位管理模块:管理员用户通过此模块可以管理用人单位的信息,还可以对用人单位信息进行查看和维护。 (4)招聘管理模块:管理员通过此功能发布和维护系统内的照片信息。 (5)就业指导管理模块:通过此模块可以编辑和发布就业指导信息,从而更好的帮助就业季的同学们。 (6)论坛管理:通过论坛管理可以查看论坛中的主题帖及里面的回复信息,除此之外还可以对论坛中的信息进行维护和管理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值