博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
购物车的原理及实现.(仿京东实现原理)
阅读量:7075 次
发布时间:2019-06-28

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

今天来开始写一下关于购物车的东西, 这里首先抛出四个问题:

1)用户没登陆用户名和密码,添加商品, 关闭浏览器再打开后 不登录用户名和密码 问:购物车商品还在吗? 

2)用户登陆了用户名密码,添加商品,关闭浏览器再打开后 不登录用户名和密码 问:购物车商品还在吗?   

3)用户登陆了用户名密码,添加商品, 关闭浏览器,然后再打开,登陆用户名和密码  问:购物车商品还在吗?

4)用户登陆了用户名密码,添加商品, 关闭浏览器 外地老家打开浏览器  登陆用户名和密码 问:购物车商品还在吗?

上面四个问题都是以京东为模板, 那么大家猜猜结果是什么呢?
1)在
2)不在了
3)在
4)在
如果你能够猜到答案, 那么说明你真的很棒, 那么关于这四点是怎么实现的呢? (如果有不认可的小伙伴可以用京东实验一下)
下面我们就来讲解下购物车的原理,最后再来说下具体的code实现.
1)用户没有登录, 添加商品, 此时的商品是被添加到了浏览器的Cookie中, 所以当再次访问时(不登录),商品仍然在Cookie中, 所以购物车中的商品还是存在的.
2)用户登录了,添加商品, 此时会将Cookie中和用户选择的商品都添加到购物车中, 然后删除Cookie中的商品. 所以当用户再次访问(不登录),此时Cookie中的购物车商品已经被删除了, 所以此时购物车中的商品不在了.
3)用户登录, 添加商品,此时商品被添加到数据库做了持久化存储, 再次打开登录用户名和密码, 该用户选择的商品肯定还是存在的, 所以购物车中的商品还是存在的.
4)理由3)
这里再说下 没登录 保存商品到Cookie的优点以及保存到Session和数据库的对比:

1:Cookie: 优点: 保存用户浏览器(不用浪费我们公司的服务器) 缺点:Cookie禁用,不提供保存

2:Session:(Redis : 浪费大量服务器内存:实现、禁用Cookie) 速度很快
3:数据库(Mysql、Redis、SOlr) 能持久化的就数据库 速度太慢
那么我今天要讲的就是:

用户没登陆:购物车添加到Cookie中

用户登陆: 保存购物车到Redis中 (不用数据库)
整体的思路图解:

转载于:https://www.cnblogs.com/liliuguang/p/9591245.html

你可能感兴趣的文章
查看控件id的工具
查看>>
Win7下Eclipse中文字体太小
查看>>
git
查看>>
黄聪:自定义插件的时候,如何调用WordPress编辑器(wp_editor)转
查看>>
黄聪:PHP 防护XSS,SQL,代码执行,文件包含等多种高危漏洞
查看>>
利用angular结合translate为项目实现国际化
查看>>
Hadoop:Task process exit with nonzero status of 1 异常
查看>>
jQuery手机发送验证码倒计时代码
查看>>
切图常用的布局和效果
查看>>
LINUX让环境变量立即生效的方法
查看>>
【Win7网络延迟问题多种解决方法】
查看>>
python 中输入一个字符串,判断这个字符串中有多少个字符、数字、空格、特殊字符...
查看>>
Red5/FMS视频直播带宽计算
查看>>
翻硬币
查看>>
Non-Rule Package常用表名
查看>>
JavaMail给QQ邮箱发邮件报错,没有SSL加密
查看>>
【解决】缺少libstdc++.so.6库的原因及解决的方法
查看>>
url 中文传参 乱码问题
查看>>
很反感
查看>>
Oracle for 循环
查看>>