javascript - 优化本地存储和搜索

标签 javascript asp.net html cookies

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

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

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

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

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

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

非常感谢任何帮助。

谢谢

最佳答案

如果字典是静态的,那么您可以使用 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']);
}

关于javascript - 优化本地存储和搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10302256/

相关文章:

ASP.NET URL 重写在开发服务器中有效,但在本地 IIS 中无效

c# - TotalHours 函数错误处理

php - <select> 未填充,按钮与 <select> 内联

javascript - promise 不等待完成

javascript - 将类添加到 match() 结果

javascript - 需要巴基斯坦 CNIC 和移动格式屏蔽

jquery - “Permission denied” 在 IE 8 和 7 中使用 Jquery

html - 并排(水平)图像链接的 Chrome 浏览器扩展对齐方式

javascript - 隐藏文本区域时无法复制到剪贴板

javascript - 对象数据源的 AngularJS ngOptions 表达式 - 是否可以将属性键存储在某处?