2

我有一个内置于 .NET 的 Web 应用程序

在会话期间,用户必须访问从数据库中填充的字典值。用户经常调用它。

我想减少 HTTP 调用,并希望将字典值带到客户端并从那里访问它。

我想了解在本地存储这个字典值的最佳实践是什么,这样检索数据非常快?

我真正想做的事情类似于 FaceBook 对“@”所做的事情,所以当你写 @Name 时,它​​会快速在数据库中进行搜索并用链接替换文本。就我而言,我有一组固定的数据可供搜索,通常不超过 10-15 个名称-值对。

我考虑将值存储在 cookie 中,但不知道是否会有任何存储限制,也不知道检索的速度有多快。

任何帮助深表感谢。

谢谢你

4

1 回答 1

1

如果字典是静态的,那么您可以使用JSON.stringifylocalStorage存储它。这样,用户只需要在他们第一次访问您的网站时加载它。将其存储在 中后 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']);
}
于 2012-04-24T16:58:33.123 回答