【问题标题】:Custom caching setting for Ext JSExt JS 的自定义缓存设置
【发布时间】:2013-02-01 07:55:41
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: javascript extjs


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      不幸的是,时间戳在 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 中。

      【讨论】:

        猜你喜欢
        • 2012-11-26
        • 2019-02-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-31
        • 1970-01-01
        相关资源
        最近更新 更多