首页 > 解决方案 > 在 Javascript 中将对象缓存在内存中

问题描述

我正在编写一个网络应用程序,它从服务器获取文件列表并显示它。用户可以单击文件夹以进入其中(实际上无需离开页面)。检索列表可能需要一段时间(每个文件约 10 毫秒,当您有 2000 个文件时,这很多),所以我想尽可能缓存结果以避免在用户进入子目录时重新获取它然后退出。

但是,如果我只是将结果存储在某个全局变量中,它们会很快填满用户的所有内存。有没有办法告诉浏览器“如果内存不足,请随意删除这个对象”,或者在内存不足时收到通知?

标签: javascriptcachingmemory-management

解决方案


如果您想将这些对象存储在用户计算机上,以防止再次从服务器请求,您可能需要使用类似 LocalStorage 的东西来这样做。

Store.js围绕本地存储解决方案提供了一个很好的 API。

现在对您来说最困难的部分是检查哪些文件属于某个文件夹,以便您可以存储它。像树数据结构这样的东西可能会很好地为这些文件夹提供形状,搭配一个 ID,您可能能够将它们映射到本地存储中的某个位置。


推荐阅读