最近,网站开发中,遇到一个问题,因为我们产品本身的因素,所以  购物车模块做到了客户端COOKIE中存放;

为啥选择cookie呢?因为降低耗服务器资源了!因为我们的快速变动大的商品原因,所以购物车也是起到即时处理即可,没必要存放多久!

当然这样 搞,也加宽了流量带宽,但是cookie本身浏览器限定的大小其实就是为此考虑,所以,在cookie承受大小,存放自己的信息,带宽啥的不是啥大问题;


说了这么多,说重点!

遇到的问题: 客户端加入购物车时,当购物车存放到7个商品时,再加入购物车其他商品,发现加入不进去了!


我此时知道是cookie溢出 了,第一想法是,放到memache里算了!但是问题又来了,我们的购物车访客也是可用的,也就是说啥呢?

未登录的用户 也可以先挑选商品到购物车!所以说放memcache中需要表示对应的用户,是哪个用户的数据,A只显示A自己的,不可能将B加入的商品也显示出来!

所以访客 需要键值key进行标示客户端!此时我想到了sessionId,但是突然想到,sessionId的原理是关闭浏览器他就会重新分配!所以呢,用户加入购物车东西,关闭了浏览器,一会再打开,购物车的东西就会丢了,因为sessionID变了,去memcache拿不到相应的数据了!


在我困惑的时候,突然,想到如果说将 存放到cookie中的商品的串的大小变小,存放的容量不就多了吗?


然后我就搜了一下字符串压缩  和  解压缩!oh  good,真的有这函数!  压缩:gzcompress(字符串)    解压缩:gzuncompress(字符串)

然后改了之后,发现明显扩容了!


然后我就感觉到了,基础很重要,如果这两个函数咱特别熟,上边这么多时间就不会浪费掉了!

哈哈~~~

但是这条弯路上的知识点,也是很多的,思考了很多,经验也是有提升的!