【问题标题】:Caching client side code results across pages跨页面缓存客户端代码结果
【发布时间】:2014-03-07 11:00:12
【问题描述】:

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

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

我确信在特定条件下,这种复杂计算的结果在一段时间内不会改变,因此我觉得在这些条件下重新计算是不必要的。

所以我想在浏览器/客户端存储/缓存结果。我认为的解决方案之一是创建一个带有结果的 cookie

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

【问题讨论】:

    标签: javascript jquery caching cookies local-storage


    【解决方案1】:

    如果您可以依赖现代浏览器,HTML 5 网络存储选项是一个不错的选择。

    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');
    }
    

    【讨论】:

      【解决方案2】:

      你可以试试 HTML 5 Local Storage 或 Web SQL 更好,你可以有更多的选择。与 Local Storage 相比,Web SQL 支持非常少。看看这个http://diveintohtml5.info/storage.html

      【讨论】:

        猜你喜欢
        • 2022-08-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-30
        • 2011-02-02
        相关资源
        最近更新 更多