购物车实现的几种方式优缺点对比


Posted in PHP onMay 02, 2018

购物车的话目前来说有三种,分别是存储在cookie中或是session中,或是结合 数据库存储

第一种是存储在cookie中

优点:

     1.cookie是存储在客户端的,且占用很少的资源,一般cookie中可以存储300个cookie,每个cookie为4KB,既可以满足购物车的需求,还可以减轻服务器的压力.

   2.cookie是浏览器内置,只要在cookie定义的有效期内,数据都不会丢失.

   3.二区cookie不是可执行文件,所以不会给用户带来病毒或攻击用户系统

缺点:

  1.基于cookie开发的购物车要求用户浏览器必须支持并设置为启用cookie,否则购物车则失效.
  2.存在着关于cookie侵犯访问者隐私的争论,因此有些用户会禁止本机cookie的功能.
   

     3.如果换一台机器在去登录的话,就会丢失购物车信息;

第二种是session

优点:

  1.session可以与客户端保持同步,不依赖与客户端的设置.
  2.与cookie相比,session是存储在服务器端的信息,因此比较安全;

缺点:.

  1.session会占用服务器资源,加大服务器的负载,尤其当并发用户很多时,会生成大量的session,影响服务器的性能.
  2.由于session存储的信息更加敏感,而且是以文件形式保存在服务器中,所以也存在着安全隐患;

 第三种是结合数据库的方式

   这种模式是目前比较普遍的.
 

 它有一下特点

优点:

                    1.数据库与cookie分别负责记录数据和维持回话,能发挥各自的优势,使安全性和服务器性能都得到了提高;
                    2.不论换到哪一个机器上,购物车信息都不丢失;

缺点:

  1.每个购物的行为 ,都要与数据库进行连接,直至对表的操作完成后,连接才释放.当并发用户很多时,会影响数据库的性能 ,这时对数据库的性能提出了更高的要求;
         2.使用cookie维持回话,需要客户端的支持.

PHP 相关文章推荐
支持php4、php5的mysql数据库操作类
Jan 10 PHP
PHP 页面跳转到另一个页面的多种方法方法总结
Jul 07 PHP
Search File Contents PHP 搜索目录文本内容的代码
Feb 21 PHP
PHP判断远程url是否有效的几种方法小结
Oct 08 PHP
基于Zookeeper的使用详解
May 02 PHP
php多维数组去掉重复值示例分享
Mar 02 PHP
最常用的8款PHP调试工具
Jul 06 PHP
PHP开发框架kohana3 自定义路由设置示例
Jul 14 PHP
PHP递归创建多级目录
Nov 05 PHP
php生成二维码图片方法汇总
Dec 17 PHP
php使用parse_str实现查询字符串解析到变量中的方法
Feb 17 PHP
php+redis实现消息队列功能示例
Sep 19 PHP
PHP生成(支持多模板)二维码海报代码
Apr 30 #PHP
PHP实现的猴王算法(猴子选大王)示例
Apr 30 #PHP
PHP+MySQL高并发加锁事务处理问题解决方法
Apr 30 #PHP
PHP使用file_get_contents发送http请求功能简单示例
Apr 29 #PHP
PHP实现通过strace定位故障原因的方法
Apr 29 #PHP
PHP性能测试工具xhprof安装与使用方法详解
Apr 29 #PHP
PHP使用curl_multi实现并发请求的方法示例
Apr 29 #PHP
You might like
在MongoDB中模拟Auto Increment的php代码
2011/03/06 PHP
thinkPHP实现多字段模糊匹配查询的方法
2016/12/01 PHP
(转载)JavaScript中匿名函数,函数直接量和闭包
2007/05/08 Javascript
Javascript弹出窗口的各种方法总结
2013/11/11 Javascript
js阻止浏览器默认行为触发的通用方法(推荐)
2016/05/15 Javascript
RequireJS使用注意细节
2016/05/15 Javascript
js滚轮事件兼容性问题需要注意哪些
2016/11/15 Javascript
Bootstrap table 定制提示语的加载过程
2017/02/20 Javascript
详解Vue-cli 创建的项目如何跨域请求
2017/05/18 Javascript
javascript  删除select中的所有option的实例
2017/09/17 Javascript
jquery获取transform里的值实现方法
2017/12/12 jQuery
element-ui 限制日期选择的方法(datepicker)
2018/05/16 Javascript
Vue中多个元素、组件的过渡及列表过渡的方法示例
2019/02/13 Javascript
原生js添加一个或多个类名的方法分析
2019/07/30 Javascript
利用JavaScript的Map提升性能的方法详解
2019/08/14 Javascript
javascript设计模式 ? 单例模式原理与应用实例分析
2020/04/09 Javascript
Python中实现参数类型检查的简单方法
2015/04/21 Python
Python使用Mechanize模块编写爬虫的要点解析
2016/03/31 Python
详解Django的CSRF认证实现
2018/10/09 Python
对python 读取线的shp文件实例详解
2018/12/22 Python
如何用C代码给Python写扩展库(Cython)
2019/05/17 Python
Python 监测文件是否更新的方法
2019/06/10 Python
django中SMTP发送邮件配置详解
2019/07/19 Python
Python根据URL地址下载文件并保存至对应目录的实现
2020/11/15 Python
css3动画效果抖动解决方法
2018/09/03 HTML / CSS
SVG实现多彩圆环倒计时效果的示例代码
2017/11/21 HTML / CSS
描述Cookie和Session的作用,区别和各自的应用范围,Session工作原理
2015/03/25 面试题
以下为Windows NT 下的32 位C++程序,请计算sizeof 的值
2016/12/07 面试题
工程管理专业毕业生自荐信
2014/01/24 职场文书
2014党委书记四风问题对照检查材料思想汇报
2014/09/22 职场文书
大学生村官入党自传
2015/06/26 职场文书
2015迎新晚会开场白
2015/07/17 职场文书
2017公司年会主持人开幕词
2016/03/04 职场文书
5个pandas调用函数的方法让数据处理更加灵活自如
2022/04/24 Python
阿里云国际版 使用Nginx作为HTTPS转发代理服务器
2022/05/11 Servers
vue3 自定义图片放大器效果的示例代码
2022/07/23 Vue.js