Javascript Ext JS的自定义缓存设置

Javascript Ext JS的自定义缓存设置,javascript,extjs,Javascript,Extjs,我最初在Ext JS应用程序中使用了这个 Ext.Loader.setConfig({ disableCaching: false, enabled: true }); 这很好,因为它会将Unix时间戳附加到我的JS文件中,使浏览器不会缓存文件。然后,我可以在不需要用户清除浏览器缓存的情况下更新我的应用程序,否则应用程序将有崩溃的风险 问题是,这会降低程序加载速度(因为每次都需要提取文件)。我只是想知道是否有一种简单的方法可以手动设置?_dc=1359704445222(时间戳

我最初在Ext JS应用程序中使用了这个

Ext.Loader.setConfig({
    disableCaching: false,
    enabled: true
});
这很好,因为它会将Unix时间戳附加到我的JS文件中,使浏览器不会缓存文件。然后,我可以在不需要用户清除浏览器缓存的情况下更新我的应用程序,否则应用程序将有崩溃的风险

问题是,这会降低程序加载速度(因为每次都需要提取文件)。我只是想知道是否有一种简单的方法可以手动设置?_dc=1359704445222(时间戳值),这样只有当我更新我的应用程序时,该值才会改变


tl;dr:我希望能够为我的Ext JS应用程序手动设置_dc参数值

动态加载只能用于开发。一旦您有了发布版本,就可以使用创建应用程序的生产版本并将其部署给用户。

不幸的是,时间戳在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()));
....
url = Ext.urlAppend(url, (options.disableCachingParam || me.disableCachingParam) + '=' + (new Date().getTime()));
....
params[cacheParam] = new Date().getTime();
另外,将new Date().getTime()的以下实例替换为您的版本号:

....
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()));
....
url = Ext.urlAppend(url, (options.disableCachingParam || me.disableCachingParam) + '=' + (new Date().getTime()));
....
params[cacheParam] = new Date().getTime();
一旦你这样做了,只要你打开了disableCaching,它就会反映在UI中