2014-02-21 28 views
3

什么是$ cookies vs localSTorage。

 

$cookies.myFavorite = 'Steve jobs'; 


localStorage.myFavorite = 'Steve jobs'; 
+1

Angular知道一个而不是另一个?很高兴听到更多的细节.. –

+0

请参阅http://stackoverflow.com/questions/5398604/local-storage-session-storage-web-storage-web-database-and-cookies-in-html5 –

+0

谢谢@梅林斯托尔,但为什么张贴?在这个链接上没有提到Angular –

回答

3

$ cookies是一个Angular模块,它采用浏览器cookie功能并将它们封装在Angular中。 Cookies比localStorage存储容量更小(4k而不是5m),并且可以配置为每次尝试使用访问者时都提示访问者使用/接受。这可以迅速解除用户体验。正因为这些原因,建议不要在浏览器中长期存储信息。饼干在传播病毒的技术文盲中也有声誉,或以其他方式有害,但这两者都是应得的或完全真实的。

localStorage(及其伴侣sessionStorage)对于HTML5的出现而言对网络来说有点新颖,并且非常有用。虽然可以通过设置明确禁用它们,但大多数浏览器都是在打开它们的情况下进行预配置的,您无需担心。与Cookie不同的是,每当浏览器想要使用这些功能时,都无法提示用户。它们不是关闭就是开启,而且没有中间。这使您在Web应用程序中获得更加无缝的体验。

localStorage推荐用于在浏览器中存储事物,这些事物将会持续超出当前会话。要删除localStorage中的东西,你必须通过localStorage.removeItem(itemName)明确地清除它们。

建议使用sessionStorage来存储您不想在当前会话之外持续存在的事物。这是因为sessionStorage在访问者离开域或关闭浏览器时被彻底清除。这使得它成为基于会话的信息的良好储存库,例如临时购物车,要比较的项目列表等。

需要注意的是,Cookie和浏览器存储可以由个人用户清除,不应该是完全依赖于存储。你最好的选择是始终驻留在服务器上的数据库存储。

+0

谢谢@MBielsji - 感谢您确认一个Angular'$ cookie'是'document.cookie'的角包装 –

0

$ cookie将被覆盖,并且它们具有临时存储。

localStorage拥有持久性存储。