W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
要使用 HTTP 緩存,必須正確地設定消息頭,冪等的 HTTP 動作可緩存。
你可以這樣設定 Cache-Control 消息頭:
get '/' do
cache_control :public
"cache it!"
end
核心提示: 在前置過濾器中設定緩存。
before do
cache_control :public, :must_revalidate, :max_age => 60
end
如果你正在用 expires 輔助方法設定對應的消息頭 Cache-Control 會自動設定:
before do
expires 500, :public, :must_revalidate
end
為了合適地使用緩存,你應該考慮使用 ?etag
? 和 ?last_modified
? 方法。推薦在執(zhí)行繁重任務之前使用這些 helpers,這樣一來,如果客戶端在緩存中已經(jīng)有相關內(nèi)容,就會立即得到顯示。
get '/article/:id' do
@article = Article.find params[:id]
last_modified @article.updated_at
etag @article.sha1
erb :article
end
使用 weak ETag 也是有可能的:
etag @article.sha1, :weak
這些輔助方法并不會為你做任何緩存,而是將必要的信息傳送給你的緩存 如果你在尋找緩存的快速解決方案,試試 rack-cache:
require "rack/cache"
require "sinatra"
use Rack::Cache
get '/' do
cache_control :public, :max_age => 36000
sleep 5
"hello"
end
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: