JavaScript变量在哪里缓存?有没有办法更有效地手动缓存?

use*_*536 5 javascript caching

现在在我继续之前,这更多的是我的好奇心.我喜欢修修补补,即使它不是网络标准中"最聪明"的东西,做实验也很有趣.

现在我试图看看我是否可以通过mongodb的网络套接字在base64中提供图像(我知道很疯狂).总体而言,获取图像的速度要快得多,但浏览器永远不会缓存它,因为它不是静态资源.

我正在制作的应用程序不需要处理重新加载,如果有刷新,我可以重新下载内容.

所以它让我想知道JavaScript保存变量的位置,我会在内存中假设,但如果是这样的话,内存中的20+ base64图像会超出顶部以迫使客户端处理.它在磁盘中吗?我不知道在哪里可以得到答案,这就是我在这里的原因.有点怀疑它在磁盘中,但确保浏览器不会过度使用内存是有意义的.

还有应用程序缓存,这可能非常有用,但前提是我可以在其中存储字符串.

localStorage是完美的,但10mb的限制几乎消除了它.

总的来说,我想看看是否有一种从JavaScript安全缓存手动创建的静态资源的好方法.

这个问题被标记为不清楚,上述意见总结了它.我希望这可以帮助一些人,如果不是这里,它会被改写.

浏览器根据http请求自然缓存,有没有办法在客户端计算机上安全地缓存像base64图像这样的长字符串,即使它意味着最新的"不稳定"的html5/javascript方法.

希望为那些困惑的人清除它.

Dav*_*der 1

正如我在重新打开问题之前在评论中指出的那样,我建议使用idb.filesystem.js,它的优点是重新加载后您仍然可以缓存文件。因此,您还需要构建一些 E-TAG/最后修改的系统。这里唯一的缺点是您需要的indexedDB支持稍微有限(尤其是 IE9-缺少)。

或者,您也可以“信任”浏览器对每个会话的缓存。现代浏览器应该能够完成合理的工作,但是每次有人打开有问题的应用程序时,您都必须重新检索它。

需要明确的是,使用localStorage并不是一个好主意,也不意味着用于此类行为。另请注意,在打开站点时会将所有localStorage变量加载到内存中,这也是其存储受到限制的原因。