您的位置:首页 > 运维架构

Ecshop购物车原理

2016-12-02 21:21 232 查看

一 、概念

       
购物车相当于现实生活中超市的购物车,不同的是一个是实体车,一个则是虚拟车。用户可以在购物网站的不同页面之间跳转,已选购自己喜欢喝需要的商品,点击购买时,该商品就会自动保存在你的购物车中,重复选购后,最后将选购的所有商品放在购物车中统一付款结账,这也可以让用户有更好的体验度。服务器通过追踪每个用户的行动,用来保证结账时每件商品都物有其主。


二、购物车功能

        1.把商品添加到购物车,即订购

      2.可删除购物车中已经订购的商品;

      3.修改购物车中每件物品的订购数量及其属性(颜色 大小等) ;

      4.显示购物车中商品的数量及其价格,商品清单

      5.清空购物车。

三、实现关键

       实现购物车的关键在于服务器识别每一个用户 并维持与他们的联系,但HTTP协议是一种“无状态”的协议,因此服务器不能记住是谁在购物,当把商品加入购物车时,服务器也不知道购物车原来有什么,使用户在不同页面跳转时购物车都无法同步,这都会给购物车的实现造成一定的困难。

四、实现机制

        目前购物车的实现主要是通过cookie 、session 或者结合数据库的方式实现。虽然cookie可用来实现购物车,但必须获得浏览器的支持,再加上它是储存在客户端的信息,非常容易被获取,所以这也限制了它储存更多、更重要的信息。 所以一般cookie只能用来维护与服务器的会话。例如国内最大的网络书店当当网就是用cookie保持与客户的联系,但这种方式的最大缺点是如果客户端不支持cookie就会使购物车失效。

       session可以很好地与交易双方保持会话,可以忽略客户端的设置。在购物车技术中得到了广泛的应用。但session的文件属性使其仍然留有安全隐患。
      结合数据库的方式虽然在一定程度上解决了这些问题,但在这种购物流程中涉及到对数据库表的频繁操作,尤其是用户每选购一件商品,都要与数据库进行连接,当用户很多的时候就加大了服务器与数据库的负荷。

      说明:数据库这种情况下可以让游客用户关闭浏览器后,购物车清空,注册用户购物车永久保存,可能会对服务器造成轻微的压力,主要取决于用户的数量,如果用户量较大,可以通过程序,自动清空超过一段时间段没有登录的用户
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: