2013-12-13 39 views
2

在我的應用程序中,我使用jquerytools的覆蓋效果。 正如在demo中所解釋的那樣,我正在疊加層內打開一個外部頁面。 在我的外部頁面中,我正在使用一些javascript來進行驗證等等。我的應用程序正在使用Struts2框架。在JQuery工具中使用AJAX調用緩存JS資源

我的問題是關於疊加效果的表現。在web服務器(apache)中,我使用mod_expires來讓瀏覽器緩存資源。 問題是,當打開覆蓋文件時,文件jquery-1.7.2.min.js被緩存在所有應用程序中,但它不會被緩存,因爲它的名稱會隨着動態生成的數字字符串而變化。

例如以這種方式更改文件名:

  • 主要應用:jquery-1.7.2.min.js
  • 覆蓋內部:jquery-1.7.2.min.js?_=1386932790620

這個數字串改變每次,防止瀏覽器(Chrome)緩存資源。所以每次用戶打開覆蓋圖時,下載的jquery-1.7.2.min.js都會降低性能。

你可以看到在所附的圖片這個問題:

緩存: enter image description here

非緩存: enter image description here

我想這jquerytools的疊加效應正在使用AJAX來加載外部頁面,所以問題是: 是否有一種方法可以將該數字字符串從附加到資源名稱?

還有其他的解決方案,以防止覆蓋效果每次下載javascript資源?

+0

在源代碼中找到它並將其刪除 –

+0

@scrowler你是什麼意思?該字符串是動態附加的,並且每次都會更改。 – Atropo

+0

@scrowler,ehh - 猜是'?_ = xxxxxxx',因爲它是JSONP – davidkonrad

回答

3

你可以嘗試添加這對你的代碼 -

$.ajaxSetup({ cache: true }); 

這將確保緩存清除策略被jQuery的。

+0

它完美的作品!謝謝! – Atropo