B2C电子商务系统研发—— 购物车(五)购物车存储形式

一、存储形式

本文涉及的知识点思维导图汇总:

二、Cookie形式

l  Cookie知识

Cookie是由服务器产生,存储在客户端的一段信息。

它定义了一种Web服务器在客户端存储和返回信息的机制,

Cookie文件它包含域、路径、生存期、和由服务器设置的变量值等内容。当用户以后访问

同一个Web服务器时,浏览器会把cookie原样发送给服务器。通过让服务器读取原先保存到客户端的信息,

Cookie存储在客户端,且占用很少的资源,浏览器允许存放300个cookie,每个cookie的大小为4KB,

足以满足购物车的要求,同时也减轻了服务器的负荷。

 

l  Cookie保存购物车信息

利用Cookie的特性,可以将客户在网站的购物车信息构造成Json(最节省空间的结构化数据)保存在客户端。

考虑到Cookie的大小只能为4k,所以保存在Cookie的数据不能太多。可以只保存购物车的总产品数量、

总金额、折扣金额等;购物车项目的产品SKU ID 、数量、价格和折扣价等。

但由于基于JSON形式存储,而且数据量受限,所以Cookie不适合业务过于复杂的网站,对于一些小型的

电商网站可以使用,比如不支持SKU规格选择的电商网站(每种颜色或每种尺码都是一件独立的产品),促销形式也很简单的。

基于Cookie要求浏览器启用Cookie,当客户端清空信息会丢失数据,换机器也看不到上次访问网站所加入购物车的产品。

三、Session形式

基于会话,当用户访问网站或购物车页面即激活。

可以保持与客户端的同步,不依赖客户端的设置。

Session多作为缓存机制,避免每次查询均要读取数据库。

Session是存储服务器端的信息,所以更安全,但Session占据服务器内存,如果在线用户数量太多,

比如百万、千万级,则服务器的负荷就比较大了,这时需要做网络架构层次的优化了,如独立的Session服务器,

Session服务器集群等。

缺点是关闭浏览器就消失了,优点当然就是性能了。

四、基于DB形式

基于DB是最利于扩展的,可以持久化处理,用户清空客户端或换机器均可以看到在网站加入购物车的产品。操作体验好。

五、三者混合

现在一般都是将这三种方式混合使用,这样价值最大。

l  使用DB建模和持久化

基于数据库进行购物车建模,保存更多的数据,以便功能开发和数据分析。

l  使用Session

在会话期间,当购物车被读取放到Session中后,只要购物车没有发生改变,

则下次访问购物车页面时,从Session读取即可,这样访问效率提高很多。

l  使用Cookie

在客户端记录购物车 ID,在顾客下次使用该客户端访问网站时,未登录之前,

就可以根据该ID从数据库查询获得购物车数据。

也可以在Cookie保存购物车 ID,总数量,金额共计(即MiniCart所需的信息),

这样在访问购物车页面之前都无需登录即可看到迷你购物车的统计信息。

阅读剩余
THE END