Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何以编程方式清除Angular 6应用程序上的缓存?_Javascript_Angular - Fatal编程技术网

Javascript 如何以编程方式清除Angular 6应用程序上的缓存?

Javascript 如何以编程方式清除Angular 6应用程序上的缓存?,javascript,angular,Javascript,Angular,只是想知道,Angular是否有办法保证用户访问站点时缓存被清理 我有一个角度的应用程序,我偶尔会将更改推到上面,但不幸的是,用户无法看到这些更新,除非他们以匿名方式打开它。如何修复此问题?要控制可能随时更改的特定文件,可以向url添加一个假版本参数,并更改参数的值 例如: 当参数的值更改时,该资源的缓存将被破坏 对于测试,我发现有用的是inspector(至少chrome/firefox有),在network选项卡中,有一个复选框用于禁用缓存。当它被选中并且该选项卡处于打开状态时,您可以加载您

只是想知道,Angular是否有办法保证用户访问站点时缓存被清理


我有一个角度的应用程序,我偶尔会将更改推到上面,但不幸的是,用户无法看到这些更新,除非他们以匿名方式打开它。如何修复此问题?

要控制可能随时更改的特定文件,可以向url添加一个假版本参数,并更改参数的值

例如:

当参数的值更改时,该资源的缓存将被破坏

对于测试,我发现有用的是inspector(至少chrome/firefox有),在network选项卡中,有一个复选框用于禁用缓存。当它被选中并且该选项卡处于打开状态时,您可以加载您的页面,而不会对其进行缓存。当然,这是为您开发时,而不是为网站的用户


对于不缓存文件的通用方法,请查看此问题,了解如何在web浏览器中禁用缓存:

拥有/运行angular material项目的人员甚至还没有在自己的演示网站上找到它,因此我不太希望有一个广受支持的解决方案。更改的性质是什么?代码更改或数据更改?一种解决方案是将web服务器(例如apache)配置为从不缓存index.html。每当部署新版本时,都要向所有文件追加一个版本号(例如
main-1.2.1.js
)。我相信
angular cli
会通过散列文件名自动实现这一点。当您构建到--prod时,文件应该附加散列,从而触发对资源的新请求。因此,当您查看网络调试窗口时,这些文件(如果相同)应该有一个http 304未修改,如果它们是新的,它们应该有一个200,说明它们再次被抓获。在我看来,这是一个肮脏的修复,但如果鞋子合适,就穿上它。@xORF否则可能是,但wordpress使用它。