2009-07-29 63 views
1

據我所知,在瀏覽器加載jquery後,通常會將其添加到瀏覽器緩存中。我應該不在不使用它的頁面上包含jquery嗎?

我的網站有數百頁,我有這些頁面上包含的頭文件,只有一些這些網頁使用jquery代碼,所以我想知道如果我的網頁加載速度更快或對最終用戶有更好的性能在不使用jquery的頁面上不要包含jquery,或者因爲它被緩存了,它是否不會影響性能?

回答

4

如果你的jQuery文件被正確緩存,如果你不使用它們,包含或不包含它們基本上都沒有關係。無論如何,沒有任何重要的程度。

「正確緩存」我的意思是遠期期貨Expires頭版本。

參見Supercharging Javascript in PHP

基本上,如果它是有道理的不包括他們,那麼不(明顯)。但是,如果它變得棘手,困難或容易出錯,那就不要麻煩了。您不希望發現自己處於無法在頁面上獲取錯誤報告的位置,這些頁面在嘗試使用不存在的jQuery時會失效,因爲您認爲該頁面不需要它。

+0

在這種情況下,您仍然有條件獲取,這很重要。你也有解析jquery的時間。這很重要。 – Marcin 2009-07-29 06:39:02

+1

您沒有條件獲取。不要將`Expires`與`If-Modified-Since`混淆。 – 2009-07-29 06:40:31

2

如果有不需要jQuery的登陸頁面(第一次訪問您的網站時用戶最終訪問的頁面),請不要包含jQuery。

用戶體驗會更好;他會認爲你的網站更快。一旦jQuery被加載一次(當用戶瀏覽您的網站時),直到他刪除了他的緩存之前,它已經不再重要了。

請確保您的服務器正在發送正確的緩存標題。

0

我個人而言,因爲我知道jquery文件將被緩存,並且我只是有一個範圍蔓延,並一直認爲客戶端會想要一些目前沒有任何功能的功能 - 所以總體上可以'如果它已經嵌入絕大多數頁面中,那麼它確實會丟失......假設這個頁面不是一個獨立/着陸頁面,那麼在這種情況下我可能會排除它。

0

瀏覽器將在緩存中有jquery,但它仍然會向您的服務器發送條件查詢,以檢查它是否沒有更改,是否應該更新。當解析<script>標記時,瀏覽器將阻止執行此條件獲取(希望快速但仍30-50ms),然後解析並執行jquery代碼(額外的10ms)。

如果你對一個額外的請求和40-70ms放緩的罰款沒有使用jQuery的每一個其他頁面我認爲沒關係。

2

根據頁面的構建方式,您可能希望將jQuery放在頁面的底部。在這種情況下,加載jQuery不應該影響可見性能,你應該隨時加入它。

1

從其他的答案總結各種好點,如果你觀察到最佳的表現手法,如:

  • 適當的標題,以確保高速緩存如果有的話(ExpiresLast-ModifiedETag等)
  • 腳本標記(如接近</body>越好)妥善安置
  • 縮小/ gzip的

在用戶體驗方面,影響應該可以忽略不計。實際上,取決於使用習慣,包含可能有助於保持緩存時間更長,並且整體性能提高

相關問題