Javascript 禁用ExtJs应用程序的缓存
我们有一个使用Sencha cmd 5.0.1.231构建的ExtJS 5.01应用程序 我们面临的问题是浏览器似乎在缓存应用程序的旧版本。当我们的应用程序运行时,查看chrome上的网络流量,我可以看到app.js和app.css文件都附加了?_dc={timestamp}。现在,这告诉我,每次发布我的应用程序的新版本(更新这个时间戳),浏览器都应该得到一个新版本。但有时似乎还是老版本的服务 还有什么我需要做的吗 谢谢我不明白为什么“有时”浏览器会缓存您的文件,即使默认情况下禁用了缓存。我甚至强迫框架尽可能地使用缓存,将这种代码的宁静放在我的Javascript 禁用ExtJs应用程序的缓存,javascript,caching,extjs,extjs5,sencha-cmd5,Javascript,Caching,Extjs,Extjs5,Sencha Cmd5,我们有一个使用Sencha cmd 5.0.1.231构建的ExtJS 5.01应用程序 我们面临的问题是浏览器似乎在缓存应用程序的旧版本。当我们的应用程序运行时,查看chrome上的网络流量,我可以看到app.js和app.css文件都附加了?_dc={timestamp}。现在,这告诉我,每次发布我的应用程序的新版本(更新这个时间戳),浏览器都应该得到一个新版本。但有时似乎还是老版本的服务 还有什么我需要做的吗 谢谢我不明白为什么“有时”浏览器会缓存您的文件,即使默认情况下禁用了缓存。我甚至
app.js
:
Ext.Loader.setConfig({
enabled: true,
disableCaching: false
});
在开发过程中,我打开我的开发工具并设置。这将不允许Chrome缓存文件
但可能是在你的
app.json
中,你通过设置“update”
或“appcache”
将“缓存”强制到本地存储中。检查本地存储和app.json以进行验证。在app.json中将app.js的更新属性设置为full:
{
// Path to file. If the file is local this must be a relative path from this app.json file.
"path": "app.js",
"bundle": true, /* Indicates that all class dependencies are concatenated into this file when build */
// If 'update' not specified, this file will only be loaded once, and cached inside
// localStorage until this value is changed. You can specify:
// - "delta" to enable over-the-air delta update for this file
// - "full" means full update will be made when this file changes
"update": "full"
}
禁用extjs中的缓存,以便浏览器从服务器获取数据。为此,添加以下app.json文件
"production": {
"cache": {
"enable": false
}
}
"css": [
{
// this entry uses an ant variable that is the calculated
// value of the generated output css file for the app,
// defined in .sencha/app/defaults.properties
"path": "${build.out.css.path}",
"bundle": true,
"update": "full"
}
],
事实上,它应该会起作用。这个问题是只针对某些特定的js还是针对所有js?您在生产环境或开发环境中遇到过这个问题吗?时间戳是针对请求的——每个请求都应该有一个新的时间戳(尽管如果您同时处理一个批,它可能是相同的)。缓存破坏参数的目的是强制缓存(如代理服务器)获取新版本。不过,有些缓存服务器并不尊重这一点。不过,您看到的是一个网络请求,这意味着浏览器至少正在尝试获取一个新版本…@yorlin似乎是在生产环境中发生的。开发不是问题,因为我总是在chrome中打开开发者工具栏,我认为这会禁用cachingThanks。。在我的app.json中,我得到了appcache:{“cache”:[“index.html”]}。您认为这会导致缓存问题吗?我建议您生成一个测试应用程序,并将其与您已有的应用程序进行比较。开箱即用,它不会给您带来任何问题,只有在您对它进行更改时。。