• λ我爱Aspx >> Asp.Net >> 使用ASP的Dictionary对象打造完美购物车
  • 使用ASP的Dictionary对象打造完美购物车

  • :aspxer  Դ:internet  :2007-5-15 20:46:34  ؼ:asp
  • 商业网站开发都会遇到购物车的问题。普通的开发者可能较多的使

    用session和cookies对象来完成;再就是更为蹩脚的数据库存储了。

    但我个人感觉session和cookies的构造并不方便。毕竟cookies要保

    存在客户端,一旦客户端关闭或禁用了cookies那就不可行了。而且2个

    对象间数据的传输读写也要烦琐。通过数据库存储的缺点就更明显了,

    很容易增加SERVER的负担,尤其是站点访问量超多的情况。

    偶尔要做一个带购物车的网站,对于喜欢偷懒的我自然不习惯以上2

    种方式。于是在网上找到了相关的资料,发现了Scripting.Dictionary

    这个对象(以前没用过,不要笑我土),以此为基础自己打造了一个session

    +Scripting.Dictionary购物车(个人还是VERY满意的,有兴趣的同志也

    帮忙测试一下吧),速度超快的。

    废话少说,看看吧:

    A、设计描述:

    客户端登陆网站时就为其建立一个SESSION,它用来关联

    字典对象形成购物车。

    客户购物时,SERVER完全通过SESSION调用字典的方法完

    成购物流程。

    B、详细:

    1、为客户建立购物车,名为shop

    set session("shop")= CreateObject("Scripting.Dictionary")

    2、检查客户当前购物车商品个数

    session("shop").count=0

    如果为0,那么自然表示购物车现在是空的

    3、客户订购某一商品

    session("shop").add id,num

    id表示数据库中商品的ID或编号等,num表示客户订购此商品的

    个数

    4、客户查看购物车列表(客户确认当前已购买了的商品列表)

    id=session("shop").keys

    num=session("shop").items

    以上2句均返回的是数组型数据,分别付给id(商品ID组)和num(

    商品数量组)这2个变量

    聪明的你马上就会想到只要通过循环把它们一一对应起来就OK了:

    for i=0 to session("shop").count-1

    ...id(i)

    ...这里可以结构操作数据库把商品的信息取出来,通过操作商品编

    号数组id(i)

    do while not rs.eof

    ...num(i)

    ...然后循环结果集,使价格等与商品对应,通过操作商品个数数组

    num(i)

    rs.movenext

    loop

    next

    数组的下标是从0开始,所以要count-1哦

    这部可能有点乱,不过如果你有点经验的话应该是很容易读懂的。

    5、客户更改某一商品的订购数量

    session("shop")(id)=num

    太简单了,我不多解释了。

    6、客户删除某一商品

    session("shop").remove(id)

    7、客户清空购物车

    session("shop").removeall

    8、客户确认后提交订单

    实际上就同样把对应的购物信息存储到数据库中就OK了。

    上一篇: 彻底解决“Microsoft JET Database Engine 错误 80004005”

    下一篇: 对ASP 动态包含文件方法的改进

    Ҷƪл˵?
  • һƪ彻底解决“Microsoft JET Database Engine 错误 80004005”
    һƪ在XSL中引用自身数据的两种方法