-->

禁用脚本煎茶装载机缓存无效,但只有同时开发/调试(Disable Sencha script loa

2019-10-23 11:21发布

我与ExtJS的4.x和煎茶建筑师2.2工作,但这个应该是相关的后续版本,并且使用的任何应用程序Ext.Loader类动态加载脚本,包括煎茶触摸。

默认情况下, Ext.Loader增添了?_dc = ...缓存阻止参数,以确保每个脚本的最新版本加载到浏览器。 当部署到生产或beta测试环境中,这是一件好事,因为它可以确保用户/测试仪获取最新的脚本每次部署和更新时间,但对于一个开发环境中,这是不是真的有必要,因为开发人员知道使用浏览器技术如Ctrl + F5强制所有脚本的重载。 更重要的是执行缓存无效获取调试断点等,只要你重新加载在浏览器中的应用程序都将丢失的方式。

缓存清除由设置disableCaching为false禁用Ext.Loader配置。 例如:

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

在这个片段中动态加载启动和高速缓存清除是禁用的 。 然而有在API文档中描述的其他配置选项这里 。

在煎茶设计师为您生成在app.js此代码,您不能编辑它。 建筑师有一个“项目设置”启用缓存,但在2.2版本,它不适合ExtJS的4.工作,我认为它在以后的版本中工作正常,但它似乎是全有或全无,所以你一定要记得将其关闭重建部署到非开发环境。

我要的是能够:

  1. 解决方法设置错误在建筑师的2.2版本
  2. 启用缓存“生产”而不是在开发破坏,而无需重建我的应用程序

Answer 1:

Ext.Loader.setConfig()可以使用不同的设置来多次调用和设置是“合并”在一起。 对我来说,这是不明确的文件 ,但幸运的是较为明显的源代码 。

源代码还显示,有一个无证形式setConfig它需要一个名称价值 ,而不是配置的对象,但因为它是无证我会传递这样一个对象棒:

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

知道这不会影响到其他Ext.Loader在别处设置你的应用程序,你可以把内线被加载后的任意位置的代码CONFIGS,但之前Ext.onReady()被调用。 在煎茶建筑师,这可以通过把它在一个“JS资源”所描述的实现在这里 。

这解决了我的问题的第一部分,但我也希望是能够把缓存无效关闭不重建,所以我修改了代码来检查这样的“调试” URL参数:

if (Ext.Object.fromQueryString(document.location.search).debug) {
    Ext.Loader.setConfig({disableCaching: false});
}

现在,当我想调试我的应用程序,我可以使用,看起来像一个网址:

http://myhost/.../app.html?debug=true

和缓存清除关闭。 我只是忽略了它被重新开启调试参数。



Answer 2:

如果使用的是煎茶命令你可以换行来禁用缓存无效在调试块,你app.js开头的某处

// <debug>
Ext.Loader.setConfig({disableCaching: true});
// </debug>

现在,当生产内置的代码将被删除。 如果你想要(或需要)来,你也可以为测试构建以保持调试代码以及​​配置生成属性。



文章来源: Disable Sencha script loader cache busting but only while developing/debugging