Javascript 缓存变量:本地存储还是cookie?

Javascript 缓存变量:本地存储还是cookie?,javascript,jquery,html,Javascript,Jquery,Html,这是问题的后续部分,我可以选择制作cookie还是使用localStorage在几个会话中保存变量。有人能告诉我两者的优缺点,以及选择哪一种的建议吗?我会选择localStorage 专业人士 快速方便地读取/写入数据 您的数据不会随每个请求一起传输到服务器,这会减少负载 键值对样式 缺点 在旧浏览器中不受支持 每个域最多可存储5 MB的数据 说到饼干,它们有时会很有用。购物车是这样一种场景:当用户关闭浏览器/会话后要恢复购物车项目时,Cookie非常有用。但是,不要存储太多cookie

这是问题的后续部分,我可以选择制作cookie还是使用
localStorage
在几个会话中保存变量。有人能告诉我两者的优缺点,以及选择哪一种的建议吗?

我会选择localStorage

专业人士

  • 快速方便地读取/写入数据
  • 您的数据不会随每个请求一起传输到服务器,这会减少负载
  • 键值对样式
缺点

  • 旧浏览器中不受支持
  • 每个域最多可存储5 MB的数据
说到饼干,它们有时会很有用。购物车是这样一种场景:当用户关闭浏览器/会话后要恢复购物车项目时,Cookie非常有用。但是,不要存储太多cookie,因为它们会随着您的每个请求(也包括AJAX请求)传输到服务器。当/如果你的网站变得流行并且每小时/天获得数千/几十万点击率时,这可能会造成巨大的瓶颈。想想看


希望有帮助。

我会选择本地存储

专业人士

  • 快速方便地读取/写入数据
  • 您的数据不会随每个请求一起传输到服务器,这会减少负载
  • 键值对样式
缺点

  • 旧浏览器中不受支持
  • 每个域最多可存储5 MB的数据
说到饼干,它们有时会很有用。购物车是这样一种场景:当用户关闭浏览器/会话后要恢复购物车项目时,Cookie非常有用。但是,不要存储太多cookie,因为它们会随着您的每个请求(也包括AJAX请求)传输到服务器。当/如果你的网站变得流行并且每小时/天获得数千/几十万点击率时,这可能会造成巨大的瓶颈。想想看


希望能有所帮助。

我只想列出我想到的4点:

  • localStorage不会随每个请求一起移动。它停留在更有效的一面(这是好的,更精简的请求)
  • 具有比Cookie更大的大小限制(您可以存储更多)
  • 易于获取/设置值的API(IMO)
  • 本地存储中存储的值不会与服务器通信。如果需要了解服务器端存储的值,请使用cookie

  • 您可以决定什么最适合您的场景。

    我只想列出我想到的4点:

  • localStorage不会随每个请求一起移动。它停留在更有效的一面(这是好的,更精简的请求)
  • 具有比Cookie更大的大小限制(您可以存储更多)
  • 易于获取/设置值的API(IMO)
  • 本地存储中存储的值不会与服务器通信。如果需要了解服务器端存储的值,请使用cookie

  • 您可以决定什么最适合您的场景。

    localStorage
    较新,部分HTML5和较旧的浏览器可能不支持它。它还只是客户端,这意味着服务器永远不会看到它,除非某些客户端代码显式地将其发送到服务器。界面非常容易使用,而且速度非常快

    Cookie受到普遍支持,并随每个请求自动发送到服务器。但是,客户端和服务器都可以访问cookie值,而无需额外工作。在一些库帮助下,管理cookies表单JavaScript的界面非常迟钝


    如果该值只需要是本地的,并且不需要考虑旧的浏览器支持,请使用
    localStorage

    localStorage
    如果更新,HTML5和旧浏览器的一部分可能不支持它。它还只是客户端,这意味着服务器永远不会看到它,除非某些客户端代码显式地将其发送到服务器。界面非常容易使用,而且速度非常快

    Cookie受到普遍支持,并随每个请求自动发送到服务器。但是,客户端和服务器都可以访问cookie值,而无需额外工作。在一些库帮助下,管理cookies表单JavaScript的界面非常迟钝


    如果该值只需要是本地的,并且不需要考虑旧的浏览器支持,请使用
    localStorage

    其他人未提及的点以粗体显示:

    • Cookie会随每个页面请求一起发送到服务器,而localStorage则不会。这意味着:
      • 当您只需要在客户端进行数据传输时,无需进行不必要的数据传输
      • 但是,当您需要服务器上的值时,需要在页面加载后使用额外的XmlHttpRequest传输该值
    • 本地存储的容量要大得多
    • 许多实现localStorage的浏览器没有禁用该功能的选项,或者该选项比阻止Cookie的选项隐藏得更好,因此禁用该功能的用户更少(许多了解Cookie的人甚至不知道该功能的存在)
    • 在我看来,localStorage有一个更易于使用的API
    • localStorage没有expire标头(但可以通过向数据添加额外的过期日期并手动处理来轻松模拟此情况)

    顺便说一下:别忘了会话存储。API是相同的,在许多情况下,它比持久本地存储更合适

    其他人还没有提到的要点是粗体的:

    • Cookie会随每个页面请求一起发送到服务器,而localStorage则不会。这意味着:
      • 当您只需要在客户端进行数据传输时,无需进行不必要的数据传输<