Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.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 浏览器在一个会话中存储下载的资产多长时间_Javascript_Json_Ajax - Fatal编程技术网

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

Javascript 浏览器在一个会话中存储下载的资产多长时间,javascript,json,ajax,Javascript,Json,Ajax,我想从服务器预加载数据,以便在我调用数据时它立即可用。数据存储在一个名为“data.json”的文件中 起初,我想将data.json保存到一个对象,并在需要时引用它 但是,根据用户的操作,在需要此对象存储的数据之前可能需要一段时间。因此,内存管理变得有点令人担忧,因为对象非常大(~5MB) 我的问题是,当我通过ajax调用data.json时,浏览器是否会在网站会话期间内部“缓存”该文件 也就是说,如果我在已经调用该文件之后再次通过ajax调用该文件,浏览器会立即从其内部内存中获取该文件,而不

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

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

但是,根据用户的操作,在需要此对象存储的数据之前可能需要一段时间。因此,内存管理变得有点令人担忧,因为对象非常大(~5MB)

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

也就是说,如果我在已经调用该文件之后再次通过ajax调用该文件,浏览器会立即从其内部内存中获取该文件,而不是返回到服务器

如果是这样的话,用JavaScript保存这个文件的额外副本似乎是浪费。然而,我在网上找不到任何关于这方面的信息/标准


简而言之,我需要将下载的文件保存到一个对象吗?或者让浏览器在内部处理这个问题安全吗?

这里有几种不同类型的“缓存”。听起来你在问“浏览器的JavaScript引擎在内存中保存一个对象多长时间”,答案是“只要有对它的引用”

另一方面,浏览器的(HTTP)缓存寿命更长;根据可用空间、回复上的新鲜度标题等,条目可以存活数天、数周或数年


对于您描述的场景,您可能希望将JSON预取到本地缓存文件中,然后仅在需要时将该缓存文件加载到JavaScript中。

@SLaks因此实时会话中的缓存使用与长期缓存相同的缓存方法?当您说预取到“本地缓存文件”时,您是指JavaScript中的对象,或者你的意思是将下载的json的内容以某种方式写入本地存储?