搜尋

隨機推薦

06 一月 2010
24 十二月 2010
21 十二月 2010

使用 Google 提供的 AJAX Libraries 需要注意的細節…

在「How Google is wasting your bandwidth」看到有人發現 Google 所提供的 Google AJAX Libraries 有一些地方處理的非常極端,沒有注意的話反而會使得使用者多花不少頻寬在上面。

廣告

jQuery 為例,如果直接指定版本,使用 1.3.2:http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js,那麼 Expires 會設定一年左右的時間:

Last-Modified: Mon, 23 Nov 2009 18:54:21 GMT
Date: Mon, 30 Nov 2009 22:03:29 GMT
Expires: Tue, 30 Nov 2010 22:02:37 GMT
Cache-Control: public, must-revalidate, proxy-revalidate, max-age=31536000
X-Content-Type-Options: nosniff

但如果後面有 ?...,像是加上了 ?ver=1.3.2 就會完全不一樣,完全不會 cache:

Last-Modified: Mon, 23 Nov 2009 18:54:21 GMT
Date: Mon, 30 Nov 2009 22:04:43 GMT
Pragma: no-cache
Expires: Fri, 01 Jan 1990 00:00:00 GMT
Cache-Control: no-cache, must-revalidate

另外一個比較小的問題是 http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js 會指到 1.3 系列最新版本,是不會 fully-cache 的,每次都會 revalidate (最好的情況是 304 Not modified,傳輸量小於 1KB,比較差的情況是整個檔案重抓一次) 以確保 Google 更新時使用者就會馬上看到最新的檔案:

Last-Modified: Mon, 23 Nov 2009 18:54:21 GMT
Date: Mon, 30 Nov 2009 22:05:52 GMT
Expires: Mon, 30 Nov 2009 23:05:52 GMT
Cache-Control: public, must-revalidate, proxy-revalidate, max-age=3600

1.2.6 與 1.2 也是一樣的情況,要使用 Google 提供的 AJAX Libraries 要注意。

以目前 Google 所提供的平台,應該要使用指定完整版本 (像是 1.2.6 或是 1.3.2),且不帶任何 query string 的 request。

廣告

无觅相关文章插件,快速提升流量

Please publish modules in offcanvas position.