《高性能網(wǎng)站建設(shè)指南》閱讀筆記_規(guī)則14- 使Ajax可緩存
發(fā)布時間:2013-11-22 瀏覽:304打印字號:大中小
簡單的額說就是使用之前的規(guī)則應(yīng)用于Ajax請求。
很多時候我們會發(fā)現(xiàn),當發(fā)起主動Ajax請求時,可能需要等待。改善這些主動Ajax請求的最重要的方式就是使響應(yīng)可緩存。此外前面提到的規(guī)則中,規(guī)則4壓縮組件,規(guī)則9減少DNS查找,規(guī)則10精簡javascript,規(guī)則11避免重定向,規(guī)則13配置與禁用ETag。
因為規(guī)則3使用緩存最重要,所以這里只介紹這一點
書中給的一個例子是雅虎郵箱的,用戶如果查看沒有將正文下載到本地的郵件,就會產(chǎn)生一個主動的ajax請求。但是如果關(guān)閉了這個網(wǎng)站之后又回來,就會發(fā)送相同的請求。因為之前的ajax響應(yīng)并沒有保存在瀏覽器緩存中。沒有被緩存的原因是有一個值為no-store的Cache-Control頭以及一個日期為過去的Expires頭,這些都告訴瀏覽器不要緩存。如果能使用一個長久的Expires頭替換這些頭就會緩存。但是一般認為:這應(yīng)該是一個動態(tài)生成的響應(yīng)只包含這個世界上的一個用戶的相關(guān)信息,緩存這些東西似乎是沒有意義的。作者認為,一個用戶可能在一天或一周中多次查看這個郵件,如果緩存了響應(yīng),就會看到緩慢的和快速的用戶體驗的差距。
當然,是這些ajax請求可緩存,除了改變HTTP頭之外還需要更多的工作,響應(yīng)的個性化和動態(tài)本質(zhì)必須反映到緩存中,可以采用的最好方式是使用查詢字符串參數(shù)。例如這個響應(yīng)只對當前用戶有效可以將用戶名放到查詢字符串中做到這一點,還有一點是要反映出確認的信息,如具體的哪一封郵件的緩存,可以使用郵件的唯一ID。


