优化本地存储和搜索

时间:2012-04-24 16:42:57

标签: javascript asp.net html5 cookies

我有一个用.NET构建的Web应用程序

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

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

我想了解在本地存储此字典值的最佳做法是什么,以便快速检索数据?

我正在尝试的实际操作类似于FaceBook对“@”的操作,因此当您编写@Name时,它会快速在数据库中进行搜索并用链接替换文本。就我而言,我有一组固定的数据要搜索,通常不超过10-15个名称 - 值对。

我打算在cookie中存储值,但不知道是否存在任何存储限制,并且也不知道检索的速度有多快。

非常感谢任何帮助。

谢谢

1 个答案:

答案 0 :(得分: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']);
}