在浏览器中缓存对象时,内存是多少?

Ben*_*Ben 4 javascript browser json memory-management

我在前端工程方面相当缺乏经验,所以如果天真或过于宽泛,我会道歉.

我的应用程序通过AJAX获取4k JSON对象.为了防止重复的HTTP请求,返回的JSON缓存在全局窗口范围内的对象中.有关这类事情的最佳做法吗?

我意识到对缓存大小的合理限制将取决于浏览器,操作系统,硬件和其他因素.我正在寻找降级的UI响应能力.

但是,有没有好的经验法则?

kir*_*oid 5

这在很大程度上取决于您的任务以及您希望拥有的大部分用户.

如果你有一个不错的3D游戏,那么即使500MB也可以(但不是全部用于JSON缓存)

现代浏览器从一开始就需要50-100MB的内存.因此,在大多数情况下,所有javascript对象的50MB应该没问题,而且我认为50MB对于任何简单(推特)/平均(gmail)网络应用来说足够大.

此外,RAM现在每GB需要5-7美元.

请记住,4k的字符串化JSON将在对象中变成10-50kb,甚至以字符串形式将花费近8k(如果使用utf-8进行http传输),因为js引擎使用UTF-16进行内部字符串表示.