我最初为我的Ext JS应用程序提供了这个;
Ext.Loader.setConfig({
disableCaching: false,
enabled: true
});
这很棒,因为它会将Unix时间戳附加到我的JS文件中,使浏览器不会缓存文件。然后,我可以更新我的应用,而无需用户清除浏览器缓存,否则应用程序将面临破坏的风险。
问题是,这会减慢程序加载速度(因为每次都需要获取文件)。我只是想知道是否有一种简单的方法可以手动设置?_ dc = 1359704445222 (时间戳值),这样只有在我更新应用程序时该值才会更改。
tl; dr:我希望能够为我的Ext JS应用程序手动设置_dc参数值
答案 0 :(得分:1)
动态加载应仅用于开发。获得发布版本后,使用Sencha Cmd创建应用程序的生成版本并将其部署到用户。
答案 1 :(得分: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()));
同时将以下新Date()。getTime()实例替换为您的版本号:
....
url = Ext.urlAppend(url, (options.disableCachingParam || me.disableCachingParam) + '=' + (new Date().getTime()));
....
params[cacheParam] = new Date().getTime();
一旦你这样做,只要你打开了disableCaching,就应该反映在UI中。