Javascript 存储json或js对象是否更有效
我正在按需获取json数据集(在运行时)。为了不获取同一个集合两次,我决定将已经下载的集合保存在js对象中。将集合存储为json并在需要时对其进行解析或保存解析后的对象会更有效吗 以下是两种方法: 进近Javascript 存储json或js对象是否更有效,javascript,json,fetch,Javascript,Json,Fetch,我正在按需获取json数据集(在运行时)。为了不获取同一个集合两次,我决定将已经下载的集合保存在js对象中。将集合存储为json并在需要时对其进行解析或保存解析后的对象会更有效吗 以下是两种方法: 进近A: const alreadyLoaded={}; 异步函数f(集合){ if(alreadyLoaded[set]!==未定义)返回alreadyLoaded[set];//更改 让jsonRes=wait-fetch(“example.+set+.json”); 让obRes=wait re
A
:
const alreadyLoaded={};
异步函数f(集合){
if(alreadyLoaded[set]!==未定义)返回alreadyLoaded[set];//更改
让jsonRes=wait-fetch(“example.+set+.json”);
让obRes=wait res.json();
alreadyLoaded[set]=obRes;//更改
return obRes;//更改
}
f(“一”);
f(“两名”);
f(“一”);
进近B
:
const alreadyLoaded={};
异步函数f(集合){
if(alreadyLoaded[set]!==undefined)返回等待alreadyLoaded[set].json();//更改
让jsonRes=wait-fetch(“example.+set+.json”);
让obRes=wait res.json();
alreadyLoaded[set]=jsonRes;//更改
返回obRes.json();//更改
}
f(“一”);
f(“两名”);
f(“一”);
由于只能调用.json()
一次,因此方法实际上不起作用。以后不可能再使用它。这种方法实际上不起作用,因为您只能调用.json()
一次。以后不可能再使用它。您需要缓存最终结果,而不是中间结果。i、 例如,如果您使用B
,那么您正在缓存一个需要调用json()
的资源(它创建了最终对象,因此您不在这里缓存最终对象)。如果使用A
,则缓存的是最终对象,假设这是您将重用的最终形式,而不是每次都对其调用函数(在这种情况下,您应该再次缓存该函数的结果)
缓存通常可以发生在任何级别,但您感兴趣的是哪种方式更有效(不是内存方式,而是处理方式)。然后答案是,在流中缓存的时间越晚越好
如果效率是指内存消耗,那么您需要测量每个对象,并确定哪一个更轻。这通常是一种折衷。您需要缓存最终结果,而不是中间结果。i、 例如,如果您使用B
,那么您正在缓存一个需要调用json()
的资源(它创建了最终对象,因此您不在这里缓存最终对象)。如果使用A
,则缓存的是最终对象,假设这是您将重用的最终形式,而不是每次都对其调用函数(在这种情况下,您应该再次缓存该函数的结果)
缓存通常可以发生在任何级别,但您感兴趣的是哪种方式更有效(不是内存方式,而是处理方式)。然后答案是,在流中缓存的时间越晚越好
如果效率是指内存消耗,那么您需要测量每个对象,并确定哪一个更轻。这通常是一种折衷。我完全不了解您的方法的实现方式。您可能做了一些解释,或者该函数看起来很奇怪。您可以使用缓存头来控制它。@DanyalImran OP似乎在问存储字符串或JavaScript对象是否更有效。我完全不知道您的方法的实现方式。您可能做了一些解释,或者该函数看起来很奇怪。您可以使用缓存头来控制它。@DanyalImran OP似乎在询问存储字符串或JavaScript对象是否更有效。