2013-01-10 27 views
0

这是this问题的后续处理,我提供了制作cookie和使用localStorage在多个会话中保留变量的选择。有人可以给我两者的优点和缺点,并建议选择哪一个?缓存一个变量:localStorage或cookie?

+1

这可能被看作是重复的... –

+0

标记为http://stackoverflow.com/questions/3220660/local-storage -vs-cookies – praseodym

+0

在我看来,Cookies已经过时了。他们总是很痛苦使用。新的localStorage规范是为了避免它们的问题而建立的。 Cookies是在ajax时代之前设计的,对于服务器端阅读非常有用。 –

回答

2

我会去localStorage

的观光

    您的数据
  • 快速,方便的读/写访问
  • 你的数据不会每一种降低负载
  • 键值对的方式请求一起传送到服务器

缺点

  • 旧的浏览器
  • 不支持最多可存储5 MB的数据每个域

当涉及到饼干,他们可以不时有用。购物车是一种情况,当用户关闭浏览器/会话后要恢复购物车项目时,Cookie可能非常有用。但是,不要存储太多的cookies,因为它们会随着您提出的每个请求(包括AJAX请求)转移到服务器。如果您的网站变得流行并且每小时/每天获得数千次/数十万次点击,这可能会导致严重的瓶颈。想想看。

希望它有帮助。

+3

“不被广泛支持”?你的意思是在IE7中? –

+1

http://caniuse.com/#search=localstorage –

+0

我意识到我在说什么后,我更新了我的评论。不过感谢您的观察。 –

0

我只想铺陈4分浮现在脑海:

  1. localStorage的不与每个请求旅行。它停留在cient侧(这是很好的,更精简的请求)
  2. 有较大尺寸的限制比一个Cookie(可以存储更多)
  3. 更容易API来获取/设定值(IMO)存储在localStorage的
  4. 值没有传达给服务器。如果您需要了解存储在服务器端的值,请使用cookie。

您决定什么是最适合您的方案。

0

localStorage是较新的,属于HTML5和更旧版本的浏览器可能不支持它。这也仅仅是客户端,这意味着你的服务器将永远不会看到它,除非某些客户端代码明确地将它发送到服务器。界面非常易于使用,速度非常快。

Cookie通用支持,并自动发送到每个请求的服务器。但是cookie值可以被客户端和服务器访问,而无需额外的工作。从一些图书馆的帮助来说,从JavaScript管理cookie的界面令人难以置信地变得迟钝。

如果该值只需要在本地,并且旧的浏览器支持不是问题,请使用localStorage。没有其他人所说

+0

“旧浏览器*可能*不支持”..不要猜测,知道。 http://caniuse.com/#feat=namevalue-storage –

1

点是大胆

  • Cookies是发送到与每个页面请求的服务器,localStorage的不是。这意味着:
    • 时,你只需要在客户端没有不必要的数据传输
    • 但是,当你需要在服务器上的价值,它需要一个额外的XmlHttpRequest要传输的页面加载
  • 的localStorage有一个更大的容量,其实现的localStorage没有一个选项可以禁止它,或者有这个选项,而不是阻止cookies选择更好的隐藏
  • 许多浏览器,如此少的用户禁用它(许多知道cookies的人甚至都不知道w该功能存在)。
  • 我认为,localStorage的具有更容易使用API​​
  • localStorage的没有到期报头(但是这可以容易地通过加入额外的到期最新的数据,并手动处理它被仿真)

顺便说一下:不要忘记sessionStorage。 API是相同的,并且在很多情况下它比持续本地存储更合适