2

我最初将这个用于我的 Ext JS 应用程序;

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

这很棒,因为它将 Unix 时间戳附加到我的 JS 文件中,使浏览器不缓存文件。然后我可以在不需要我的用户清除浏览器缓存的情况下更新我的应用程序,否则应用程序存在崩溃的风险。

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

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

4

2 回答 2

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()));

还将以下 new Date().getTime() 实例替换为您的版本号:

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

一旦你这样做了,只要你启用了 disableCaching,它就应该反映在 UI 中。

于 2013-09-19T16:12:30.960 回答
1

动态加载应该只用于开发。发布版本后,使用Sencha Cmd创建应用程序的生产版本并将其部署给用户。

于 2013-02-01T16:38:54.250 回答