博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
网店购物车实现
阅读量:6588 次
发布时间:2019-06-24

本文共 1847 字,大约阅读时间需要 6 分钟。

hot3.png

         网店购物,一般都会有自己的购物车,如同真实的购物流一样,

         虚拟购物车无非在于添删改查了。
         用户查看商品开始购物:
                a. insert     商品(购物车空的,没有商品直接放进去)
                b. update    商品(购物车有的话,num数量增加或减少)
                c. delete     商品  特殊情况num=1 再减少 => 直接删除  清空的购物车时候
                d. show   商品  购物车显示进入订单结算流程

          有了这个思路,那么肯定就是实现方式问题的选择了,该选择哪种呢,先对比下孰优孰劣吧?

          我们都知道http是面向无连接的,或者在购物时服务端是不清楚具体是谁谁在购物操作的,那么在这个过程中就需要一个唯一的’令牌‘  ,谁来给呢?都给购物车设计提出了难题。

           具体点大概有以下4点 等这些吧(其他的没遇到,欢迎提供其他的解决思路)

               1. cookie
               2. session
               3. cookie、 session+db
               4. cookie+memcahe

            目前大部分应该就是cookie、session+db 方式吧,也要依赖与cookie维持服务端会话,

但是有一点就是你可以试试(禁掉cookie 你去360buy 或tmail 加下购物车看是否能成功)

           1.    cookie

          cookie是由服务器产生存储于pc端的服务端信息且占用很少资源(pc端)不占用服务端资源,查了下资料大概客户端默认的是300个cookie数量每个4kb左右的资源就相当于一个空文件,对购物而已搓搓有余了

           但是千万别忘了,cookie是存放在pc端的信息(安全隐患嘛),当购物时会提交给服务端,这中间会出现什么问题呢,你懂的,就是伪造cookie请求数据以假乱真呗,在cookie有效期内虽然你关掉浏览器重启后购物信息任然保存,但是这在不同用户登录同一pc的时候会造成购物车显示问题,明明没有购买却在购物车显示---不信你试试

          最致命的一点是,一旦某些客户认为cookie会暴露自己隐私或者其他信息禁用cookie时,对不起,购物车添加不了

          2.    session

           session是服务端的会话,提供了可以保存和跟踪用户的状态信息的功能,使当前用户在session中定义的变量和对象能在页面之间共享且不能为应用中其他用户所访问,session将用户在会话期间的私有信息存储在服务器端,提高了安全性。在服务器生成session后,客户端 会生成一个sessionid识别号保存在客户端,以保持和服务器的同步。这个sessionid是只读的,如果客户端禁止cookie功 能,session会通过在URL中附加参数,或隐含在表单中提交等其他方式在页面间传送。因此利用session实施对用户的管理则更为安全、有效。

         虽然session不依赖与客户端设置也比较安全,但是她在服务端保存任然是文件的形式,安全性不说很高,勉强接受吧。

         另外,session会占用服务器资源和服务器端的负载,尤其当并发用户很多时,会生成大量的session,影响服务器的性能;如果session放在数据库会影响数据库性能,一旦关闭浏览器重启将清空购物车(我不相信你购物时没遇到过),惊叹,我买的东西那里去啦呀

             3.     cookie、session+db  我觉得这样较好  也是当下较普遍的方式 

         db担当存储购物信息的作用,session或cookie则用来跟踪用户购物行为

         db和服务端session记录数据和客户行为标识,cookie维持这种标识 哎其实说穿了session就是cookie

         这样各取所长,发挥优势,有利于安全性和服务点性能的提高和充分利用

         但是还是要说下:
           1.  cookie 的加入使购物依赖于客户端设置
           2.  每次购物都有session 和db的参与,这增加了数据库和服务器端的资源消耗,
                而且并发量大的时候可想而知了,等着转圈圈吧甚至你懂的
           3.  不管怎样,但是这种方式是的用户购物行为得以保存,即使你换做不同的pc登录,
                你的购物车依然是你的,真TM人性化 呵呵

             4.      cookie+memcache   这也是比较流行的一种方式啦

          服务端用memcache替换db作用与记录和跟踪,只是这种方式只是暂时的或短暂的存储用户购物车信息啦,如一旦memcache过期或者重启或者资源不够暴了,那么对不起,购物信息也没用了

         

            利用下班时间整理的咚咚,有不足的请指正,谢谢

转载于:https://my.oschina.net/yanzhiwei/blog/109668

你可能感兴趣的文章
开源 java CMS - FreeCMS2.7 移动端栏目页静态化
查看>>
DNS使用的是TCP协议还是UDP协议
查看>>
牛津词典 2018 年度词汇 ——「有毒」!
查看>>
五、数据类型转换
查看>>
十二、流程控制之条件运算符
查看>>
python学习笔记之——装饰器及对象
查看>>
kali 上面已经安装了mysql但是启动报 ERROR 2002
查看>>
JS --数据类型
查看>>
redis高级进阶(2)
查看>>
Python_016 XML解析
查看>>
linux精灵进程之crond
查看>>
如何修改一个类的私有成员?
查看>>
memcache 源码分析之开场白
查看>>
javaweb学习总结(六)——Servlet开发(二)
查看>>
ectouch手机商城首页调用指定分类下的商品
查看>>
软件测试有前途吗
查看>>
OC高效率52之“方法调配技术”调试“黑盒方法”
查看>>
Vue学习笔记01
查看>>
概念性问题
查看>>
Categories
查看>>