2010-09-28 35 views
1

如果我使用GET參數來改變我的.php外部javascript文件加載基於頁面的不同內容非瀏覽器將要緩存該文件嗎?他們會將global_js.php?page = foo和global_js.php?page = bar視爲具有不同的名稱,並再次加載內容?或者我應該在頭文件中包含某些內容來做到這一點?GET參數改變我的.php外部JavaScript文件加載不同的內容

更新: 不同的get參數被髮送到文件,它會加載不同的內容。我採取了一個壞方法?我的CSS是這樣的:

<link rel="stylesheet" type="text/css" href="./CSS/css_global.php?load={$pagecat}&load_mootools={$load_mootools}&load_jquery={$load_jquery}&css_extra={$css_extra}&version={$xx_version}_{$css_extra}"> 

如果我把我的每一個很少的外部文件在一個單獨的文件事件,雖然會出現多個HTTP請求大多數用戶並不在他們的瀏覽器,如美國啓動非緩存行爲開發人員和他們將緩存文件導致更快的用戶體驗,但現在我的CSS上可用的不同組合將不會被緩存,因爲每個頁面在發送CSS文件的get參數上略有不同。

+0

@skaffman你爲什麼刪除標籤「dynamic-javascript」和「external-file」? – Neo 2010-10-11 17:13:49

+0

我正在做一些標記修剪。像那些低使用,通用冠冕堂皇的標籤無助於對問題進行分類。這不僅僅是你的問題,還有其他一些問題。 – skaffman 2010-10-11 18:13:33

回答

1

沒錯,瀏覽器會將它們視爲不同的文件。

我不會推薦使用B00MER的方法,如果你DO希望文件被單獨緩存。

一旦文件被單獨緩存,您可以通過將版本參數附加到文件來強制進行緩存更新,因此每次更新應用程序(版本更改)時都會重新生成緩存。

app.js?module=account&version=1.0_RC2_2010-09-28 
+0

但它不只是更新不同的獲取參數發送到文件,它會加載不同的內容。我採取了一個壞方法嗎?因爲今天我想到了自己......如果我將每個少數外部文件放在單獨的文件事件中,儘管會有多個http請求,但大多數用戶不會像我們的開發人員那樣在他們的瀏覽器上激活非緩存行爲,他們會緩存文件導致更快的用戶體驗,但現在使用CSS上的不同組合,它將永遠不會被緩存,因爲每個頁面在發送CSS文件的get參數上略有不同。 – Neo 2010-10-11 08:37:52

1

您可能要嘗試此之前從您的.php文件的任何輸出JavaScript正在加載。

<?php 
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past 
?> 
相關問題