购物车的几种实现方式

1.购物车的话目前来说有三种,分别是存储在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维持回话,需要客户端的支持.

时间: 2024-10-11 04:11:27

购物车的几种实现方式的相关文章

介绍HTML5几种存储方式

总体情况 h5之前,存储主要是用cookies.cookies缺点有在请求头上带着数据,大小是4k之内.主Domain污染. 主要应用:购物车.客户登录 对于IE浏览器有UserData,大小是64k,只有IE浏览器支持. 下面就跟兄弟连(www.lampbrother.net )HTML5课程一起来学习HTML5几种存储方式: 目标 解决4k的大小问题 解决请求头常带存储信息的问题 解决关系型存储的问题 跨浏览器 1.本地存储localstorage 存储方式: 以键值对(Key-Value)

Struts2系列笔记(3)---Action类的3种书写方式

Action类的3种书写方式 本文主要写有关写Action类的3种书写方式: (1)第一种 Action可以是POJO (简单模型对象)  不需要继承任何父类 也不需要实现任何接口 (2)实现Action接口 (3)继承ActionSupport(推荐) 那我们先来书写第一种: (1)第一种 Action可以是POJO (简单模型对象)  不需要继承任何父类 也不需要实现任何接口 1 //这里其实就是一个普通的类,类里面的方法可以任意写,如果写execute()方法那就代表默认执行它 2 pub

[数据库事务与锁]详解八:底理解数据库事务乐观锁的一种实现方式——CAS

注明: 本文转载自http://www.hollischuang.com/archives/1537 在深入理解乐观锁与悲观锁一文中我们介绍过锁.本文在这篇文章的基础上,深入分析一下乐观锁的实现机制,介绍什么是CAS.CAS的应用以及CAS存在的问题等. 线程安全 众所周知,Java是多线程的.但是,Java对多线程的支持其实是一把双刃剑.一旦涉及到多个线程操作共享资源的情况时,处理不好就可能产生线程安全问题.线程安全性可能是非常复杂的,在没有充足的同步的情况下,多个线程中的操作执行顺序是不可预

利用图形窗口分割法将极坐标方程:r=cos(θ/3)+1/9用四种绘图方式画在不同的窗口中

利用图形窗口分割法将极坐标方程:r=cos(θ/3)+1/9用四种绘图方式画在不同的窗口中. 解:MATLAB指令: theta=0:0.1:6*pi;rho=cos(theta/3)+1/9; >> polar(theta,rho) >> >> plot(theta,rho) >> semilogx(theta,rho) >> grid >> hist(rho,15) 结果分别如下图: 图1 图2 图3 图4

linux ssh 的几种验证方式

介绍 本文说的SSH指的是OPENSSH这个开源软件,通过OPENSSH官网可发现,它在服务器上的使用率已经非常高了.运维人员.开发人员每天都在用它,但很多人对他的工作原理和认证方式不是很了解. 正文 SSH的认证方式可以概括有4种. 1 PAM认证 在配置文件/etc/ssh/sshd_config中对应参数: UsePAM 2 公钥私钥认证 在配置文件/etc/ssh/sshd_config中对应参数: RSAAuthentication.PubkeyAuthentication 我们在配置

Python模块常用的几种安装方式

一.方法1: 单文件模块直接把文件拷贝到 $python_dir/Lib 二.方法2: 多文件模块,带setup.py 下载模块包,进行解压,进入模块文件夹,执行:python setup.py install 三. 方法3:easy_install 方式  先下载ez_setup.py,运行python ez_setup 进行easy_install工具的安装,之后就可以使用easy_install进行安装package了.  easy_install  packageName  easy_i

sort_contours_xld算子的几种排序方式研究

sort_contours_xld算子有5种排序方式,即: 'upper_left': The position is determined by the upper left corner of the surrounding rectangle. 'upper_right':The position is determined by the upper right corner of the surrounding rectangle. 'lower_left':The position i

PlaceHolder的两种实现方式

placeholder属性是HTML5 中为input添加的.在input上提供一个占位符,文字形式展示输入字段预期值的提示信息(hint),该字段会在输入为空时显示. 如 1 <input type="text" name="loginName" placeholder="邮箱/手机号/QQ号"> 目前浏览器的支持情况 浏览器 IE6/7/8/9 IE10+ Firefox Chrome Safari  是否支持 NO YES YE

js的5种继承方式——前端面试

js主要有以下几种继承方式:对象冒充,call()方法,apply()方法,原型链继承以及混合方式.下面就每种方法就代码讲解具体的继承是怎么实现的. 1.继承第一种方式:对象冒充 1 function Parent(username){ 2 this.username = username; 3 this.hello = function(){ 4 alert(this.username); 5 } 6 } 7 function Child(username,password){ 8 //通过以