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


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 相关文章推荐
php 应用程序安全防范技术研究
Sep 25 PHP
PHP session有效期session.gc_maxlifetime
Apr 20 PHP
手把手教你打印出PDF(关于fpdf的简单应用)
Jun 25 PHP
php实现zip压缩文件解压缩代码分享(简单易懂)
May 10 PHP
php身份证号码检查类实例
Jun 18 PHP
PHP翻页跳转功能实现方法
Nov 30 PHP
PHP5.5.15+Apache2.4.10+MySQL5.6.20配置方法分享
May 06 PHP
PHP和MYSQL实现分页导航思路详解
Apr 11 PHP
Thinkphp开发--集成极光推送
Sep 15 PHP
PHP使用Redis实现防止大并发下二次写入的方法
Oct 09 PHP
Laravel使用Queue队列的技巧汇总
Sep 02 PHP
PHP的cookie与session原理及用法详解
Sep 27 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
php实现产品加入购物车功能(1)
2020/07/23 PHP
js Date自定义函数 延迟脚本执行
2010/03/10 Javascript
非常有用的40款jQuery 插件推荐(系列二)
2011/12/25 Javascript
通过JavaScript使Div居中并随网页大小改变而改变
2013/06/24 Javascript
jquery dialog open后,服务器端控件失效的快速解决方法
2013/12/19 Javascript
jQuery实现鼠标经过图片预览大图效果
2014/04/10 Javascript
简单对比分析JavaScript中的apply,call与this的使用
2015/12/04 Javascript
轻松实现jquery手风琴效果
2016/01/14 Javascript
浏览器复制插件zeroclipboard使用指南
2016/03/26 Javascript
给Easyui-Datebox设置隐藏或者不可用的解决方法
2017/05/26 Javascript
js中getBoundingClientRect的作用及兼容方案详解
2018/02/01 Javascript
vue.js轮播图组件使用方法详解
2018/07/03 Javascript
vue2使用keep-alive缓存多层列表页的方法
2018/09/21 Javascript
vue 中基于html5 drag drap的拖放效果案例分析
2018/11/01 Javascript
JS桶排序的简单理解与实现方法示例
2019/11/25 Javascript
JQuery复选框全选效果如何实现
2020/05/08 jQuery
[01:56]2014DOTA2西雅图邀请赛 MVP外卡赛老队长精辟点评
2014/07/09 DOTA
Python实现过滤单个Android程序日志脚本分享
2015/01/16 Python
Python实现的下载网页源码功能示例
2017/06/13 Python
Python 单例设计模式用法实例分析
2019/09/23 Python
在 Python 中接管键盘中断信号的实现方法
2020/02/04 Python
如何学习Python time模块
2020/06/03 Python
keras model.fit 解决validation_spilt=num 的问题
2020/06/19 Python
类的返射机制中的包及核心类
2016/09/12 面试题
北大自主招生自荐信
2013/10/19 职场文书
技校生自我鉴定
2013/12/08 职场文书
DIY蛋糕店的创业计划书范文
2013/12/26 职场文书
争论的故事教学反思
2014/02/06 职场文书
生日宴会策划方案
2014/06/03 职场文书
小学安全工作汇报材料
2014/08/19 职场文书
捐资助学感谢信
2015/01/21 职场文书
教师个人师德总结
2015/02/06 职场文书
2015年幼儿园中班下学期工作总结
2015/05/22 职场文书
实验心得体会范文
2016/01/25 职场文书
python for循环赋值问题
2021/06/03 Python
实例讲解Python中sys.argv[]的用法
2021/06/03 Python