2013-02-01 115 views
2

我最初對我的Ext JS應用程序有這個設置;Ext JS的自定義緩存設置

Ext.Loader.setConfig({ 
    disableCaching: false, 
    enabled: true 
}); 

這很好,因爲它會將Unix時間戳附加到我的JS文件中,使得瀏覽器不緩存文件。然後,我可以更新我的應用程序,而無需我的用戶清除瀏覽器緩存,否則存在應用程序崩潰的風險。

問題是,這會減慢程序加載速度(因爲每次都需要提取文件)。我只是想知道是否有一種簡單的方法可以手動設置?_dc = 1359704445222(時間戳值),以便只有在更新我的應用程序時纔會更改該值。

TL;博士:我希望能夠手動設置_dc參數值我的Ext JS應用程式

回答

1

動態加載只應該用於發展。一旦發佈版本,請使用Sencha Cmd創建應用程序的生產版本並將其部署到用戶。

1

不幸的是,時間戳是Sencha的一個硬編碼的東西。您可以通過修改ext-all-dev.js(或者如果您使用不同的文件,查找相似性)並輕鬆地更改該文件並替換以下代碼:

替換Ext.Date.now )到您的版本號:

.... 
noCacheUrl = url + (this.getConfig('disableCaching') ? ('?' + this.getConfig('disableCachingParam') + '=' + Ext.Date.now()) : ''), 
.... 
url = Ext.urlAppend(url, Ext.String.format("{0}={1}", me.cacheString, Ext.Date.now())); 

而且更換新的日期下面的實例()的getTime()到您的版本號:

.... 
url = Ext.urlAppend(url, (options.disableCachingParam || me.disableCachingParam) + '=' + (new Date().getTime())); 
.... 
params[cacheParam] = new Date().getTime(); 

一旦你這樣做,它應該在UI的反映只要您啓用了disableCaching即可。