最佳化網站設計(十六):為AJAX請求使用GET方法

來源:互聯網
上載者:User
前言

網站設計的最佳化是一個很大的話題,有一些通用的原則,也有針對不同開發平台的一些建議。這方面的研究一直沒有停止過,我在不同的場合也分享過這樣的話題。

作為通用的原則,雅虎的工程師團隊曾經給出過35個最佳實務。這個列表請參考  Best Practices for Speeding Up Your Web Site http://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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.