您的位置:首页 > Web前端

前端 _本地存储问题

2012-07-21 20:31 351 查看
我问了许多的前端,使用Cookie会有什么弊端,很多都是回答说不安全之类的,不安全那是肯定的,不过只要服务端在使用Cookie的时候适当的加个密就可以防止很多安全的问题了,这不是我们前端主要关心的问题。在日常的开发过程中,本人碰到了以下问题:

1. 存储大小问题

2. 在请求过程中会带过去服务端,这样如果Cookie过大会影响发包。

首先我们看看第一点,一些权威机构对Cookie存放大小是怎么说的

一个域名的每个 cookie 被限制为 4,096 字节。这个总数可以 4 千字节 (KB) 的一个名称-值对的形式存在,或作为多达 20 名称-值对的总的 4 KB。如果计算机没有足够的空间存储该 cookie,该 cookie 将被丢弃。

就是说单个值不得超过4K, 可以多达20个。这样的存储量基本是够用了,不过对于服务器端如果也使用的话就很难说了,因为这里就不单单是前端要用了,还多了一方,这样的数据是不可靠的,你永远无法知道是不是你自己把他给堵满了,或者把你的改了。对于团队开发,使用时有这个必要看看cookie使用的情况。

另外还有一点就是,如果你用一些如Firebug的调试软件抓一下头部你会发现,在网站发送请求(Post)的时候会把cookie也带了过去。这样一看,如果你单cookie有1KB 共有 5 个就 5 KB, 按1M的小水管来算,上传最大就只有50K/S, 就上传就花了 0.1 秒,等服务端返回加处理这样一个过程花的时间就长了许多。对于大访问量的站就更不用说了,一个用户单一个请求上传就花了5KB, 1024个用户就 5M,1024W就是5M*10000,这是多么大的上传宽带开销。

针对以上这两个问题本人觉得可以用以下的解决方案.

支持 localstorage 的浏览器使用 localstorage , 这个本地存储的对象ie8以上的都支持了,Firefox 、Chrome就更不用说了。

对于一些低级一点的浏览器如IE6 IE7 可以用Flash的SharedObject模拟一个本地存储的对象。

这提到的这两个东西都是服务器端不会用到的,所以也不用担心数据被服务端的人给改了。

可以对localstorage 和 Flash的存储进行一个封装,让它使用方便点就可以了。具体怎么样去实现这里就不多说了,提供一些参考资料吧。
http://blog.csdn.net/ld_flex/article/details/6002774 http://www.cnblogs.com/xiaowei0705/archive/2011/04/19/2021372.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: