Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

多用localStorage,少用Cookie

  甜食吃多了会长胖,网站吃太多Cookie也一样会长胖。虽然Cookie本身并不大,但它被传输的频率非常高,所以它对资源的占用是不可忽视的。如果已经不考虑做IE7-的兼容就把很多不必要的数据换成localStorage储存吧,而且localStorage的操作还更方便。
  现在还做IE7-的兼容实在是没必要了,大家可能早就抛弃IE6了吧,实际上IE7比IE6更没存在感

  IE8是从传统浏览器到现代浏览器的一个过渡产物,它支持很多新特性,其中就包括localStorage。很早以前我就觉得Cookie很碍事,但由于要兼容IE6/7,只能硬着头皮用。现在一些项目不需要考虑IE6/7,所以之前用Cookie的东西基本上全改成localStorage存储了,只留下一个作为SessionID使用。
  Cookie本身并不算太大,看天猫首页加载完Cookie也就200字节左右。但它对于同域下的资源每次请求都会发送。如果一个页面有20张在同域的图片需要请求,那Cookie就被多发送了20次,浪费了4k的资源。而且有些资源二次请求会根据ETag得到302响应代码。虽然内容不被传输,但头部分依然需要传输。即使是使用ETag缓存,Cookie太大也同样会影响加载。所以才提倡一些简单的静态资源跨域存储,那样就不会发送一堆没必要的Cookie了。
  Cookie这东西在操作上也很蛋疼,没有直接访问某个键值的API,需要自己分析Cookie字符串,这是很麻烦的。而且前端写入Cookie居然是用一个setter方法,简直操蛋。相比之下,localStorage使用要方便地多。
  总之,Cookie是一个历史遗留的东西。它的特点是总是会像服务器发送,可以设置域名、目录、超时,等一些配置信息。如果没有这些需求,仅是为了存数数据,那就不该用它。
网名:
3.80.32.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^