【发布时间】:2015-06-23 01:02:58
【问题描述】:
我正在使用 ExtJS 4.x 和 Sencha Architect 2.2,但这应该与更高版本以及使用 Ext.Loader 类动态加载脚本的任何应用程序相关,包括 Sencha Touch。
默认情况下,Ext.Loader 添加了一个 ?_dc=... 缓存清除参数,以确保将每个脚本的最新版本加载到浏览器中。当部署到生产环境或 beta 测试环境时,这是一件好事,因为它可以确保用户/测试人员在每次部署和更新时都能获得最新的脚本,但对于开发环境来说,这并不是必需的,因为开发人员知道使用浏览器技术像 ctrl+F5 强制重新加载所有脚本。更重要的是,当您在浏览器中重新加载应用程序时,由于断点等会丢失,因此缓存破坏会妨碍调试。
通过在Ext.Loader 配置中将 disableCaching 设置为 false 来禁用缓存破坏。例如:
Ext.Loader.setConfig({
enabled: true,
disableCaching: false
});
在这个 sn-p 中,动态加载启用,缓存清除禁用。然而,API 文档here 中描述了其他配置选项。
在 Sencha Architect 中,此代码是在 app.js 中为您生成的,您无法对其进行编辑。 Architect 有一个“项目设置”来启用缓存,但在 2.2 版中它不适用于 ExtJS 4。我认为它在以后的版本中可以正常工作,但它似乎是全有或全无,所以你必须记住将其关闭并重新构建以部署到非开发环境。
我想要的是能够:
- 解决 Architect 2.2 版中的设置错误
- 在“生产”中启用缓存破坏,但在开发中不启用,无需 重建我的应用
【问题讨论】:
标签: extjs extjs4 sencha-touch sencha-architect