我有一个用 .NET 构建的 Web 应用程序
在 session 期间,用户必须访问从数据库中填充的字典值。用户经常调用它。
我想减少 HTTP 调用,并想将字典值带到客户端并从那里访问它。
我想了解以快速检索数据的方式在本地存储此字典值的最佳做法是什么?
我真正想做的是类似于 FaceBook 对“@”所做的事情,所以当你写@Name 时,它会快速在数据库中进行搜索并用链接替换文本。就我而言,我有一组固定的数据可供搜索,通常不超过 10-15 个名称-值对。
我考虑过将值存储在 cookie 中,但真的不知道是否会有任何存储限制,我也不知道检索的速度有多快。
非常感谢任何帮助。
谢谢
最佳答案
如果字典是静态的,那么您可以使用 JSON.stringify
和 localStorage
来存储它。这样用户只需要在他们第一次访问您的网站时加载它。将其存储在 localStorage
后,我建议每次加载页面时使用 JSON.parse
将其加载到 JavaScript 对象中以加快搜索速度,因为 JavaScript 对象的工作方式如下哈希表。
然后您可以在每次加载页面时添加一个简单的检查,以查看是否需要刷新字典。
var globalDictionaryHash = null;
function loadDictionary()
{
if (localStorage.getItem("my_dict") == null)
{
localStorage.setItem("my_dict", JSON.stringify(myObjectFromAJAXCall));
}
globalDictionaryHash = JSON.parse(localStorage.getItem("my_dict"));
console.log(globalDictionaryHash['key']);
}
关于javascript - 优化本地存储和搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10302256/