商业网站开发都会遇到购物车的问题
普通的开发者可能较多的使用session和cookies对象来完成
再就是更为蹩脚的数据库存储了
但我个人感觉session和cookies的构造并不方便毕竟cookies要保存在客户端一旦客户端关闭或禁用了cookies那就不可行了而且个对象间数据的传输读写也要烦琐通过数据库存储的缺点就更明显了
很容易增加SERVER的负担尤其是站点访问量超多的情况
偶尔要做一个带购物车的网站对于喜欢偷懒的我自然不习惯以上种方式于是在网上找到了相关的资料发现了ScriptingDictionary这个对象(以前没用过不要笑我土)以此为基础自己打造了一个session
+ScriptingDictionary购物车(个人还是VERY满意的有兴趣的同志也帮忙测试一下吧)速度超快的
废话少说看看吧
A设计描述
客户端登陆网站时就为其建立一个SESSION它用来关联字典对象形成购物车客户购物时SERVER完全通过SESSION调用字典的方法完成购物流程
B详细
为客户建立购物车名为shop
setsession(shop)=CreateObject(ScriptingDictionary)
检查客户当前购物车商品个数
session(shopunt=
如果为那么自然表示购物车现在是空的
客户订购某一商品
session(shop)addidnum
id表示数据库中商品的ID或编号等num表示客户订购此商品的个数
客户查看购物车列表(客户确认当前已购买了的商品列表)
id=session(shop)keys
num=session(shopems
以上句均返回的是数组型数据分别付给id(商品ID组)和num(商品数量组)这个变量
聪明的你马上就会想到只要通过循环把它们一一对应起来就OK了
fori=tosession(shopunt
id(i)
这里可以结构操作数据库把商品的信息取出来通过操作商品编号数组id(i)
dowhilenotrseof
num(i)
然后循环结果集使价格等与商品对应通过操作商品个数数组num(i)
rsmovenext
loop
next
数组的下标是从开始所以要count哦
这部可能有点乱不过如果你有点经验的话应该是很容易读懂的
客户更改某一商品的订购数量
session(shop)(id)=num
太简单了我不多解释了
客户删除某一商品
session(shop)remove(id)
客户清空购物车
session(shop)removeall
客户确认后提交订单
实际上就同样把对应的购物信息存储到数据库中就OK了