2011-05-14 20 views
2

jQuery的給你做一個可能性:是否有緩存時間最新的jQuery的CDN?

<script src="http://code.jquery.com/jquery-latest.js"></script> 

問題是,文件還沒有任何到期日,因此客戶端將永遠需要它。

另一種選擇是http://ajax.googleapis.com/ajax/libs/jquery/x.x.x/jquery.min.js已經一個1年到期

所以,有人知道CDN提供jQuery的latest.js一些緩存時間?

+0

爲什麼緩存時間不是您的服務器上的問題?在CDN的情況下,它是最終用戶和CDN之間的問題,爲什麼你會擔心這一點?除此之外,如果最終用戶願意,或者決定使用舊的緩存文檔,則可以隨時請求新文檔。 – 2011-05-14 17:30:20

+4

你真的想使用最新版本的jQuery,而不是使用你測試過的特定版本嗎? – 2011-05-14 17:33:12

+0

它必須是這種方式(無緩存),因爲該URL可能隨時提供不同的位。完全限定的版本號將在現在和未來提供相同的位,所以任何長度的緩存都應該沒問題。 – 2011-05-14 22:03:22

回答

22

是指定一個遠的將來到期頭的理由提高性能是瀏覽器可以立即使用該文件的本地副本,如果是內到期的時間表。在這種情況下,瀏覽器根本不會發出HTTP請求,甚至不檢查304「未修改」響應。

這意味着「最新版本」引用不能與性能優化的expires標頭一起提供。如果是這樣,就不能保證任何給定的瀏覽器可能使用哪個版本的文件作爲參考。

在生產中,您應該始終使用完全限定的x.y.z版本號,而不是「獲取最新」引用之一。 Google的CDN爲jQuery提供了+1年過期標題,當您以這種方式引用它時,結合公共CDN的跨站點緩存潛力,意味着許多用戶可能永遠不需要爲jQuery發出HTTP請求在你的網站上。

+0

男人我不需要解釋緩存的工作方式。我完全不同意你的看法,因爲即使是'jquery-lastest.js'也可能會過期+ 1h(開發人員需要等待一個新的jquery發佈後1小時,以便知道它將始終在用戶緩存上更新,如果這是一個問題) – dynamic 2011-05-14 19:52:54

+0

如果您關心性能優化(這是CDN的一個要點),那麼+1小時到期的時間比您應該在生產中瞄準的要短得多。 – 2011-05-14 21:07:23

+0

也許1h很短。但是1天會很好。 – dynamic 2011-05-14 21:29:26