不自重者,取辱。不自长者,取祸。不自满者,受益。不自足者,博闻。

文章写了都一年多了,一直没个合适的地方放,现在终于可以搬上来了。


背景

先看看各种本地存储的变革:

  • Cookies:浏览器均支持,容量为4KB

  • UserData:仅IE支持,容量为64KB

  • Flash:100KB

  • Google Gears SQLite :需要插件支持,容量无限制

  • LocalStorage:HTML5,容量为5M


现准备在项目中试图取代cookie的实现,基本分析如下:

  • 每次和服务器端进行交互,cookie都会在请求中被携带,cookie过多,也造成带宽的浪费

  • cookie的容量很小,或许无法满足当今互联网的本地存储需求

  • 在IE8+、Firefox3.0+、Opera10.5+、Chrome4.0+、Safari4.0+、iPhone2.0+、Andrioid2.0+等平台下,已经完全支持HTML5的LocalStorage

  • 在IE7即以下版本中,可以使用UserData来代替cookie,而且同样比cookie保险

  • 用户可能清cookie,但不见得知道去清UserData或者LocalStorage,这也增强了一道代码保险


到底用啥来取代?

  • UserData:仅IE可用

  • Flash:存储空间够了,也还挺好,可这玩意儿不是HTML原生的

  • Google Gears:存储空间没啥限制,就是得装额外的插件

  • HTML5-LocalStorage:官方建议每个站点可以本地存储5M的内容,非常大了

最后再分析一下现在咱们针对的浏览器:IE系列、FF、Chrome、Safari、Opera,外加双核的遨游、QQ浏览器、搜狗浏览器