javascript - 浏览器在单个会话中存储下载的资产多长时间
问题描述
我想从服务器预加载数据,以便在我调用它时立即可用。数据存储在一个名为“data.json”的文件中。
起初,我想保存data.json
到一个对象并在需要时引用它。
但是,根据用户的操作,在我需要此对象存储的数据之前可能需要一段时间。因此,由于对象很大(约 5 mb),因此内存管理变得有点令人担忧。
我的问题是,当我data.json
通过 ajax 调用时,浏览器是否在网站会话期间内部“缓存”此文件。
意思是,如果我在已经调用文件之后再次通过 ajax 调用文件,浏览器会立即从自己的内存中获取文件,而不是返回服务器?
如果是这样,在 JavaScript 中保存该文件的额外副本似乎是一种浪费。但是,我在网上找不到任何关于此的信息/标准。
所以简而言之,我需要将下载的文件保存到一个对象吗?或者让浏览器在内部处理它是否安全?
解决方案
这里有几种不同类型的“缓存”。听起来您在问“浏览器的 JavaScript 引擎将对象在内存中保留多长时间”,而答案是“只要有对它的引用”。
另一方面,浏览器的 (HTTP) 缓存寿命更长;一个条目可能存在几天、几周或几年,具体取决于可用空间、响应上的新鲜度标题等。
对于您所描述的场景,您可能希望将 JSON 预取到本地缓存文件,然后仅根据需要将该缓存文件加载到 JavaScript 中。
推荐阅读
- python - Tiingo 客户端 API 按日期拉取超出范围的数据
- node.js - NestJs EventBus 在 EventHandler 重复事件
- python - 数据框轮廓图Python
- java - 电视提供商 Delete 不适用于 where 子句
- google-chrome-extension - 内容安全政策正在阻止 React Google Charts 如何通过它
- html - 在 Python 中使用 Selenium 或 Request 不会读取所有 span 类
- firebase - Flutter firebase sendSignInLinkToEmail不发送电子邮件并报告任何错误iOS
- wear-os - 无需电话连接即可通过 WiFi 从 WearOS 手表直接调用 API
- c++ - Valgrinds 说我有很大的泄漏?
- php - MySQL 与 PHP 的连接