2014-03-27 52 views
0

的情況是這樣的:動態加載的.html頁面不使用緩存JS文件

我有一個加載使用Jquery.load()子頁面的頁面:

loadMainContent: function(url, success) 
{ 
    $("#app-main").load(url, function(response, status, xhr) { 
     if (status == "error") 
     { 
      /* @todo Show loading error page */ 
      console.log("Error message"); 
     } 
     else 
     { 
      if (typeof success == "function") 
      { 
       success(); 
      } 
     } 
    }); 
    app.getSession(); 
} 

問題是:在加載的.html文件中,我包含了一些'.js'文件,這些文件應該被緩存,但它不會被緩存。

我的谷歌瀏覽器控制檯顯示:

XHR finished loading: "http://www.cdttravel.cashmate.com.br/travel/list". jquery.min.js:4 (The sub-page that i loaded) 
XHR finished loading: "http://www.cdttravel.cashmate.com.br/js/bloodhound.js?_=1395932898636". jquery.min.js:4 
XHR finished loading: "http://www.cdttravel.cashmate.com.br/js/core/typeahead.js?_=1395932898637". jquery.min.js:4 
XHR finished loading: "http://www.cdttravel.cashmate.com.br/js/app-travel.js?_=1395932898638". jquery.min.js:4 
XHR finished loading: "http://www.cdttravel.cashmate.com.br/js/moment.js?_=1395932898639". jquery.min.js:4 
XHR finished loading: "http://www.cdttravel.cashmate.com.br/js/langs.js?_=1395932898640". jquery.min.js:4 
XHR finished loading: "http://www.cdttravel.cashmate.com.br/js/bootstrap-datetimepicker.min.js?_=1395932898641". jquery.min.js:4 
XHR finished loading: "http://www.cdttravel.cashmate.com.br/ajax/query/session". jquery.min.js:4 
XHR finished loading: "http://www.cdttravel.cashmate.com.br/ajax/travel/form/init". jquery.min.js:4 

注意,所有的.js文件之後是_ = xxxxxxxxxxxxxxxxx是防止他們beeing緩存的隨機數?

但我想要在用戶瀏覽器中緩存的文件。如何刪除網址中的隨機查詢? 顯然他們是由jquery生成的,但不知道這一點。

在此先感謝!

回答

2

嘗試添加以下代碼:

$.ajaxSetup({'cache':true}); 

默認的jQuery可以確保請求JS文件從不緩存。從docs

緩存(默認值:true,false爲的dataType '腳本' 和 'JSONP')

+0

但是使用這個解決方案,它可以緩存,我不JSONs想,對不對?有什麼辦法可以爲腳本啓用緩存嗎? –

+2

恐怕您必須使用'.ajax'函數而不是'$ .load'來設置每個請求的緩存設置。 –