这是this问题的后续处理,我提供了制作cookie和使用localStorage
在多个会话中保留变量的选择。有人可以给我两者的优点和缺点,并建议选择哪一个?缓存一个变量:localStorage或cookie?
回答
我会去localStorage。
的观光
-
您的数据
- 快速,方便的读/写访问
- 你的数据不会每一种降低负载
- 键值对的方式请求一起传送到服务器
缺点
- 在旧的浏览器
- 不支持最多可存储5 MB的数据每个域
当涉及到饼干,他们可以不时有用。购物车是一种情况,当用户关闭浏览器/会话后要恢复购物车项目时,Cookie可能非常有用。但是,不要存储太多的cookies,因为它们会随着您提出的每个请求(包括AJAX请求)转移到服务器。如果您的网站变得流行并且每小时/每天获得数千次/数十万次点击,这可能会导致严重的瓶颈。想想看。
希望它有帮助。
“不被广泛支持”?你的意思是在IE7中? –
http://caniuse.com/#search=localstorage –
我意识到我在说什么后,我更新了我的评论。不过感谢您的观察。 –
我只想铺陈4分浮现在脑海:
- localStorage的不与每个请求旅行。它停留在cient侧(这是很好的,更精简的请求)
- 有较大尺寸的限制比一个Cookie(可以存储更多)
- 更容易API来获取/设定值(IMO)存储在localStorage的
- 值没有传达给服务器。如果您需要了解存储在服务器端的值,请使用cookie。
您决定什么是最适合您的方案。
localStorage
是较新的,属于HTML5和更旧版本的浏览器可能不支持它。这也仅仅是客户端,这意味着你的服务器将永远不会看到它,除非某些客户端代码明确地将它发送到服务器。界面非常易于使用,速度非常快。
Cookie通用支持,并自动发送到每个请求的服务器。但是cookie值可以被客户端和服务器访问,而无需额外的工作。从一些图书馆的帮助来说,从JavaScript管理cookie的界面令人难以置信地变得迟钝。
如果该值只需要在本地,并且旧的浏览器支持不是问题,请使用localStorage
。没有其他人所说
“旧浏览器*可能*不支持”..不要猜测,知道。 http://caniuse.com/#feat=namevalue-storage –
点是大胆:
- Cookies是发送到与每个页面请求的服务器,localStorage的不是。这意味着:
- 时,你只需要在客户端没有不必要的数据传输
- 但是,当你需要在服务器上的价值,它需要一个额外的XmlHttpRequest要传输的页面加载 后
- 的localStorage有一个更大的容量,其实现的localStorage没有一个选项可以禁止它,或者有这个选项,而不是阻止cookies选择更好的隐藏
- 许多浏览器,如此少的用户禁用它(许多知道cookies的人甚至都不知道w该功能存在)。
- 我认为,localStorage的具有更容易使用API
- localStorage的没有到期报头(但是这可以容易地通过加入额外的到期最新的数据,并手动处理它被仿真)
顺便说一下:不要忘记sessionStorage。 API是相同的,并且在很多情况下它比持续本地存储更合适
- 1. 缓存或类变量?
- 2. 保存缓存到一个变量
- 3. 将localStorage变成一个asp变量?
- 4. 在localstorage中保存一行变量onClick
- 5. jquery store array localstorage或cookie
- 6. Cookie或localStorage与铬扩展
- 7. jQuery fadeToggle缓存/ localStorage
- 8. 临时或暂时缓存一个变量
- 9. 令牌保存 - 会话,cookie或缓存?
- 10. localStorage和变量
- 11. 会话变量或cookie
- 12. 我需要缓存localStorage吗?
- 13. 将cookie从cookie存储到JavaScript变量
- 14. mod_python变量缓存
- 15. localStorage更换Cookie?
- 16. 将数据存储在一个变量或多个变量中?
- 17. Javascript搜索,如果LocalStorage变量存在
- 18. 缓存一个常量值
- 19. 如何在将两个变量存储到localStorage时连接两个变量?
- 20. 如何保存点击结果中的cookie或localStorage的
- 21. 缓存或预加载一些变量在php
- 22. Cookie是否缓存?
- 23. php缓存vs cookie
- 24. 在缓存中存储一个node.js变量
- 25. 更新LocalStorage或Azure表存储第一
- 26. Php apc操作码缓存 - 缓存整个文件与变量
- 27. 存储大量信息的一个cookie
- 28. jQuery - 将多个选择器缓存到一个变量?
- 29. 在变量中缓存HTML
- 30. 缓存变量在Sinatra
这可能被看作是重复的... –
标记为http://stackoverflow.com/questions/3220660/local-storage -vs-cookies – praseodym
在我看来,Cookies已经过时了。他们总是很痛苦使用。新的localStorage规范是为了避免它们的问题而建立的。 Cookies是在ajax时代之前设计的,对于服务器端阅读非常有用。 –