跨页面缓存客户端代码结果

时间:2014-02-10 07:53:59

标签: javascript jquery caching cookies local-storage

在我们的应用程序中,我们使用JavaScript / jQuery绘制导航组件,并且由于授权,这涉及复杂的逻辑。

几乎所有经过身份验证的页面都需要导航组件,因此每当用户从一个页面导航到另一个页面时,每个页面都会重复复杂的逻辑

我确信在特定情况下,这种复杂计算的结果在一段时间内不会改变,因此我认为在这些情况下不需要重新计算。

所以我想在浏览器/客户端存储/缓存结果。我觉得解决方案之一就是用结果创建 cookie

如果这是一个好方法我需要建议。如果没有,我还能在这做什么呢?

2 个答案:

答案 0 :(得分:1)

最好能够尝试HTML 5本地存储或Web SQL,您可以在其中拥有更多选项。与本地存储相比,Web支持非常少。看看这个http://diveintohtml5.info/storage.html

答案 1 :(得分:1)


如果你可以依赖现代浏览器HTML 5 web strorage选项是一个不错的选择。

http://www.html5rocks.com/en/features/storage 从上面引用

  

使用客户端存储有几个原因。首先,你可以   当用户离线时,让您的应用程序工作,可能同步数据   网络再次连接后返回。其次,这是一种表现   助推器;您可以在用户尽快显示大量数据   点击您的网站,而不是等待它再次下载。   第三,它是一种更简单的编程模型,没有服务器基础设施   需要。当然,数据更容易受到攻击而用户不能   从多个客户端访问它,所以你应该只使用它   非关键数据,尤其是数据的缓存版本   “在云中”。请参阅“离线”:它是什么意思,我为什么要这样做   关心?关于离线技术的一般性讨论,其中   客户端存储是一个组件。

if(typeof(Storage)!=="undefined")
{
  // this will store and retrieve key / value for the browser session
  sessionStorage.setItem('your_key', 'your_value');
  sessionStorage.getItem('your_key');

  // this will store and retrieve key / value permanently for the domain
  localStorage.setItem('your_key', 'your_value');
  localStorage.getItem('your_key');
}