AngularJS $templateCache 是否在本地硬盘上存储数据

Does AngularJS $templateCache store data on local hardrive

我正在构建一个显示敏感患者信息的应用程序。 我的一条路线显示了从服务器收到的 HTML 片段,其中包含患者文档的图像。

我需要确保页面关闭后无法访问磁盘上的该文档
如果它留在那里,那将是一个非常大的问题。

我注意到路由正在缓存,我不得不将其从 $templateCache 中删除以检测更改。那只是缓存在内存中还是本地硬盘?

一个更广泛的问题可能是:Angular 是否会根据 HTTP 缓存控制 headers 在持久性存储上缓存超出浏览器已经执行的内容的任何内容?

这实际上取决于您查看的抽象级别:

Javascript 应用程序无法将任意文件写入磁盘 - 存在 well-known 浏览器沙箱,这也适用于 angular.js 应用程序。因此,如果您没有在自己的代码中专门使用浏览器离线 API(例如 LocalStorage、Cookies 等),那么通常会有 "just" 浏览器缓存。所以你应该没问题。

警告 1:有时似乎很难控制浏览器缓存,正如您已经提到的,浏览器缓存内容的方式有多种。它们通常可以通过 http headers。因此,如果您非常仔细地配置 HTTP headers,应该没问题。

注意事项 2:操作系统有多种缓存方式,它们可能会也可能不会将其中一些缓存保存到磁盘(举一个简单的例子,考虑 windows 休眠文件:可能有一个副本当您在休眠时在浏览器中打开它时,您的图像就在那里。)。这不能由浏览器应用程序控制 - 但对于大多数应用程序来说,这并不重要。