cookie溢出浏览器规定容量,如何解决?本地购物车如何解决?
2016-01-20 14:13
483 查看
最近,网站开发中,遇到一个问题,因为我们产品本身的因素,所以 购物车模块做到了客户端COOKIE中存放;
为啥选择cookie呢?因为降低耗服务器资源了!因为我们的快速变动大的商品原因,所以购物车也是起到即时处理即可,没必要存放多久!
当然这样 搞,也加宽了流量带宽,但是cookie本身浏览器限定的大小其实就是为此考虑,所以,在cookie承受大小,存放自己的信息,带宽啥的不是啥大问题;
说了这么多,说重点!
遇到的问题: 客户端加入购物车时,当购物车存放到7个商品时,再加入购物车其他商品,发现加入不进去了!
我此时知道是cookie溢出 了,第一想法是,放到memache里算了!但是问题又来了,我们的购物车访客也是可用的,也就是说啥呢?
未登录的用户 也可以先挑选商品到购物车!所以说放memcache中需要表示对应的用户,是哪个用户的数据,A只显示A自己的,不可能将B加入的商品也显示出来!
所以访客 需要键值key进行标示客户端!此时我想到了sessionId,但是突然想到,sessionId的原理是关闭浏览器他就会重新分配!所以呢,用户加入购物车东西,关闭了浏览器,一会再打开,购物车的东西就会丢了,因为sessionID变了,去memcache拿不到相应的数据了!
在我困惑的时候,突然,想到如果说将 存放到cookie中的商品的串的大小变小,存放的容量不就多了吗?
然后我就搜了一下字符串压缩 和 解压缩!oh good,真的有这函数! 压缩:gzcompress(字符串) 解压缩:gzuncompress(字符串)
然后改了之后,发现明显扩容了!
然后我就感觉到了,基础很重要,如果这两个函数咱特别熟,上边这么多时间就不会浪费掉了!
哈哈~~~
但是这条弯路上的知识点,也是很多的,思考了很多,经验也是有提升的!
为啥选择cookie呢?因为降低耗服务器资源了!因为我们的快速变动大的商品原因,所以购物车也是起到即时处理即可,没必要存放多久!
当然这样 搞,也加宽了流量带宽,但是cookie本身浏览器限定的大小其实就是为此考虑,所以,在cookie承受大小,存放自己的信息,带宽啥的不是啥大问题;
说了这么多,说重点!
遇到的问题: 客户端加入购物车时,当购物车存放到7个商品时,再加入购物车其他商品,发现加入不进去了!
我此时知道是cookie溢出 了,第一想法是,放到memache里算了!但是问题又来了,我们的购物车访客也是可用的,也就是说啥呢?
未登录的用户 也可以先挑选商品到购物车!所以说放memcache中需要表示对应的用户,是哪个用户的数据,A只显示A自己的,不可能将B加入的商品也显示出来!
所以访客 需要键值key进行标示客户端!此时我想到了sessionId,但是突然想到,sessionId的原理是关闭浏览器他就会重新分配!所以呢,用户加入购物车东西,关闭了浏览器,一会再打开,购物车的东西就会丢了,因为sessionID变了,去memcache拿不到相应的数据了!
在我困惑的时候,突然,想到如果说将 存放到cookie中的商品的串的大小变小,存放的容量不就多了吗?
然后我就搜了一下字符串压缩 和 解压缩!oh good,真的有这函数! 压缩:gzcompress(字符串) 解压缩:gzuncompress(字符串)
然后改了之后,发现明显扩容了!
然后我就感觉到了,基础很重要,如果这两个函数咱特别熟,上边这么多时间就不会浪费掉了!
哈哈~~~
但是这条弯路上的知识点,也是很多的,思考了很多,经验也是有提升的!
相关文章推荐
- 赤诚的火焰--致时代里永远不变的规矩
- hdu 2018
- Android WebView开发问题及优化汇总
- A Simple Problem with Integers
- IOS 与 Android WebView 中 JS 调用原生代码
- 百度地图配置使用
- session中或者request中同名字的参数会被后来者覆盖
- Memcached Java Client API详解
- Android设计模式源码解析之适配器(Adapter)模式
- 区间操作练习
- mysql报错: 1548-Cannot load from mysql.proc. The table is probably corrupted 解决办法
- 最长公共子序列LongestCommonSubsequence
- Android开发规范之编码规范
- 三.学习数据结构之链表(离散存储)
- 【高效server实践】--日志模块
- [Application] iTerm 2 &Oh My Zsh
- 四层交换技术浅析
- 从框架到完整项目搭建,实战项目《约个球》(5)-为我们自己的框架导入网络的开源框架
- NodeJS 与 npm 在Windows下升级
- android studio插件android-butterknife-zelezny