• day79_淘淘商城项目_商城购物车系统实现三种方案总结


    1、商城购物车系统实现的三种方案

    1.1、session

      将购物车直接存放到与用户相关的session中。
    优点:
      代码实现超级简单。
    缺点:
      购物车存在session当中,如果session销毁,购物车就没有了。(session只存在于一次会话中。)
      用户未登录的时候不能添加购物车。
      购物车使用了session,而session是存在于内存资源中,消耗了大量的内存资源。非常不好。
      集群情况下,session很难共享,无法进行水平扩展。(tomcat的session广播对资源消耗严重,即tomcat的带宽不干别的了,就去广播了。)

    1.2、cookie

      将购物车直接存放到浏览器的cookie中。
    优点:
      在不登陆的情况下也可以添加购物车。
      不占用服务端存储空间。
      用户体验好。
      代码实现简单。
    缺点:
      cookie中保存的容量有限。最大4k。
      cookie占用的是浏览器的缓存,可能用户会定期删除cookie。
      把购物车信息保存在cookie中,更换设备购物车信息不能同步。

    1.3、cookie+入库 / 直接入库

      对于未登陆用户,将购物车放到cookie中,对于已登陆用户将购物车放入数据库中。
      将购物车持久化到数据库中。这里的数据库指的是关系型数据库或者非关系型数据库
    优点:
      关系型数据库:mysql数据库(数据完整性比较好)
      非关系型数据库:redis数据库(读写速度快)
    缺点:
      相对于session和cookie,没啥缺点。
      占用服务端资源。

    2、购物车实现总结

      自己写着玩的代码可以使用cookie+session。
      真实场景应该是要使用cookie+入库,或者直接入库。
      京东准许未登录状态添加购物车,应该采用的是cookie+入库。
      淘宝并不准许用户未登录添加购物车,应该采用的是直接入库。

  • 相关阅读:
    QSPI
    温度标准
    minigui占用空间的情况
    引导页的展示
    Xcode6.0以后SVN的配置
    【转】iOS多线程编程技术之NSThread、Cocoa NSOperation、GCD
    SDWebImage最新使用
    OC设计模式
    Objective-c的@property 详解
    iOS开发时间戳与时间,时区的转换,汉字与UTF8,16进制的转换
  • 原文地址:https://www.cnblogs.com/chenmingjun/p/10082491.html
Copyright © 2020-2023  润新知