浏览器在一个会话中将下载的资产存储多长时间

时间:2018-09-07 15:57:01

标签: javascript json ajax

我想从服务器中预加载数据,以便在我调用它时可以立即使用。数据存储在名为“ data.json”的文件中。

起初,我想将data.json保存到一个对象并在需要时引用它。

但是,根据用户的操作,我可能需要一段时间才能获取该对象存储的数据。因此,由于对象很小(〜5 mb),因此内存管理成为一个值得关注的问题。

我的问题是,当我通过ajax调用data.json时,浏览器是否在网站会话期间在内部“缓存”该文件。

意思是,如果我在已经调用过文件之后再次通过ajax调用文件,浏览器会立即从其自身的内存中获取文件,而不是返回服务器吗?

如果是这样,在JavaScript中保存该文件的额外副本似乎是浪费的。但是,我在网上找不到有关此信息的任何信息/标准。

因此,简而言之,我需要将下载的文件保存到对象吗?还是让浏览器在内部进行处理是安全的?

1 个答案:

答案 0 :(得分:0)

这里有几种不同类型的“缓存”正在播放。听起来您好像在问“浏览器的JavaScript引擎将对象保留在内存中多长时间”,答案是“只要有对它的引用。”

另一方面,浏览器的(HTTP)缓存寿命更长;一个条目可能会存在几天,几周或几年,这取决于可用空间,响应中的新鲜度标题等。

对于如上所述的情况,您可能希望将JSON预取到本地缓存文件,然后仅根据需要将该缓存文件加载到JavaScript中。