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


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 相关文章推荐
mysq GBKl乱码
Nov 28 PHP
php array_merge下进行数组合并的代码
Jul 22 PHP
php5.3中连接sqlserver2000的两种方法(com与ODBC)
Dec 29 PHP
PHP curl伪造IP地址和header信息代码实例
Apr 27 PHP
PHP中的Trait 特性及作用
Apr 03 PHP
PHP实现一个多功能购物网站的案例
Sep 13 PHP
PHP实现的防止跨站和xss攻击代码【来自阿里云】
Jan 29 PHP
yii2多图上传组件的使用教程
May 10 PHP
PDO::setAttribute讲解
Jan 29 PHP
PHP创建XML接口示例
Jul 04 PHP
php文件包含的几种方式总结
Sep 19 PHP
PHP实现常用排序算法的方法
Feb 05 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
图形数字验证代码
2006/10/09 PHP
PHP编实现程动态图像的创建代码
2008/09/28 PHP
php设计模式 Bridge (桥接模式)
2011/06/26 PHP
基于PHP创建Cookie数组的详解
2013/07/03 PHP
PHP实现二叉树的深度优先与广度优先遍历方法
2015/09/28 PHP
Yii框架页面渲染操作实例详解
2019/07/19 PHP
日期 时间js控件
2009/05/07 Javascript
对xmlHttp对象方法和属性的理解
2011/01/17 Javascript
JS加jquery简单实现标签元素的显示或隐藏
2013/09/23 Javascript
JS实现鼠标单击与双击事件共存
2014/03/08 Javascript
jquery用offset()方法获得元素的xy坐标
2014/09/06 Javascript
JavaScript字符串对象split方法入门实例(用于把字符串分割成数组)
2014/10/16 Javascript
JavaScript让Textarea支持tab按键的方法
2015/06/26 Javascript
详解js中class的多种函数封装方法
2016/01/03 Javascript
JS中使用apply方法通过不同数量的参数调用函数的方法
2016/05/31 Javascript
jquery+Jscex打造游戏力度条
2020/09/12 Javascript
关于Ajax的原理以及代码封装详解
2017/09/08 Javascript
inquirer.js一个用户与命令行交互的工具详解
2019/05/18 Javascript
如何利用node.js开发一个生成逐帧动画的小工具
2019/12/01 Javascript
基于javascript实现贪吃蛇经典小游戏
2020/04/10 Javascript
Vue基于iview table展示图片实现点击放大
2020/08/05 Javascript
构建一个JavaScript插件系统
2020/10/20 Javascript
nodejs中使用worker_threads来创建新的线程的方法
2021/01/22 NodeJs
Python实现扫描指定目录下的子目录及文件的方法
2014/07/16 Python
详解如何使用Python编写vim插件
2017/11/28 Python
详解python的ORM中Pony用法
2018/02/09 Python
解决python3 json数据包含中文的读写问题
2018/05/10 Python
Python中的 enum 模块源码详析
2019/01/09 Python
Python基于当前时间批量创建文件
2020/05/07 Python
html5构建触屏网站之网站尺寸探讨
2013/01/07 HTML / CSS
Linux的文件类型
2016/07/05 面试题
《藤野先生》教学反思
2014/02/19 职场文书
创文明城市标语
2014/06/16 职场文书
《去年的树》教学反思
2016/02/18 职场文书
党员公开承诺书(2016最新版)
2016/03/24 职场文书
集英社今正式宣布 成立游戏公司“集英社Games”
2022/03/31 其他游戏