2010-11-25 60 views
0

我在這裏有一堆javascript文件,我不知道如何將它們全部緩存到一個文件中。我所遇到的使用:在Ruby on Rails中基本緩存js資產

javascript_include_tag ... :cache => true 

,但我有很多的,尤其適用於特定頁面的JavaScript文件...是否有意義,包括所有的人都在我的佈局,即使某些頁面不需要那裏有很多的JavaScript?我的一些網頁根本不需要任何javascript,瀏覽器會爲每個頁面下載這個連接的js嗎?

回答

0

有些人會將所有的JavaScript轉儲到一個文件中,但我認爲這並不重要,除非在每個頁面中都使用例程。

想想你的腳本是如何使用的。將在大多數頁面中最常用的文件放在一個文件中。然後,如果有偶爾使用的腳本,請將它們放在單獨的文件中。然後在您的HTML文件中使用多個<script>語句來提取您需要的語句。

如果用戶的瀏覽器設置正常,它將下載腳本一次,然後從其本地緩存中引用它們。他們第一次請求頁面時,需要更長的時間來檢索所有內容,因爲它必須填充緩存,但從那時開始它會很快(呃)。瀏覽器將對所有腳本的引用使用緩存版本。

如果您有bajillion腳本,:cache => true標誌可以提供幫助,因爲它們可以在第一次下載文件時被壓縮,但是當瀏覽器將它從緩存中拉出時,我認爲它不會加速加載。

Caching multiple javascripts into one談論它。

0

n include tags = n在服務器上獲取請求。這表現不佳,網頁變慢。

我不介意將所有內容縮小到一個文件中。它一次下載,然後它被緩存在瀏覽器中。

每種情況都不一樣,所以使用Yslow分析你的使用情況,看看是否縮小到一個文件是否會有所幫助。也可以看看https://github.com/thumblemonks/smurf用於將您的js & css in縮小爲2個文件。