|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
Active Server Page技术为应用开发商提供了基于脚本的直观、快速、高效的应用开发手段,极大地提高了开发的效果。在讨论ASP的安全性问题之前,让我们来看看ASP是怎么工作的。设计 你必定去过超等市场吧。在那边你可以推着推车,将中意的商品放进推车,或把推车里的商品掏出来从头放到货架,最初你推着推车去结账。
那末,在网上超市,客户也应当可以在阅读商品目次时,将中意的商品放进"电子推车"。电子推车是超等市场推车的电子化。在网上商铺里,这类电子推车又称为"购物推车",英文是Shopping Cart。
购物推车的设计方针
从法式员的概念来看,购物推车是保护购物者商品选购、答应观察、答应修正的一个对象。购物推车自己是一个十分复杂的法式,但开辟者要思索它将毗连到商品目次子体系、定单子体系、客户账号子体系、站点办理子体系等等,构成功效完全的网上商铺。
上面是购物推车的设计方针:
1、 延续性:购物推车应当从它的前一次会话中记住其内容。
2、 购物推车和客户相干,而不是和客户的电脑相干。客户可以从别的的电脑或阅读器来会见购物推车。
3、 当新的商品被到场推车或从推车去失落时,推车的内容可以被显示给用户。
4、 推车可以包容良多乃至无穷的商品。
体系设计/流程设计
在编写咱们的购物推车之前,咱们看看它的体系架构和流程。请看下图:
假如客户从商品目次当选择了一件商品,这时候咱们传递客户的恳求到proxy.asp,同时传递的是举措变量"增添商品"。Proxy.asp读取这个变量,并决意履行购物推车的哪一个举措。这些举措包含:增添商品、更新商品数目、移除商品或观察购物推车。
有些举措被作为外部挪用。如创立推车之前,咱们需求反省推车是不是已存在(CheckCart)。在增添、删除或更新商品及其数目时,咱们要确认此商品是不是已存在于咱们的购物推车当中(CheckItem)。上面咱们将为购物推车设计8个办法,分离是:
ViewItem 观察推车
CheckCart 反省推车
CreateCart 创立推车
AddItem(ID, Qty), 增添商品
RemoveItem(ID) 删除商品
UpdateItem(ID, Qty), 更新数目
RemoveAll 全体清空
CheckItem(ID) 商品反省
购物推车的设计
购物推车需求三个要素:一个VBScript 5的类class CartKit,一个多维数组mudCart,一个session变量Session("Cart")。
这个VBScript 类,咱们称为CartKit,包括了8个办法,如上表所示。在本文咱们只用了ID和Qty,分离暗示商品编号和数目。
如许咱们就能够用一个二维数组来表达这个推车,象上面如许? br> 商品编号 商品数目
ID-1 23
ID-3 10
ID-23 6
ID-2 1
然后咱们把这个二维数组保留到session变量中就能够了。
购物推车类CartKit的设计
请下载:CartKit.asp
CreateCart设计:
请看法式代码:
Class CartKit REM 入手下手类CartKit的界说
Sub CreateCart()
IF IsArray(Session("Cart")) = false THEN
Dim mudCart(19,1)
Session("Cart") = mudCart
END IF
End Sub
个中:Session("Cart")保留的就是推车的内容。假如推车不存在,咱们就界说一个二维数组mudCart来表达推车,并将它保留到session("Cart")中。
CheckCart设计:
本函数判别Cart是不是已创立。对照复杂。
Function CheckCart()
IF IsArray(Session("Cart")) THEN
CheckCart=True
ELSE
CheckCart=False
END IF
End Function
CheckItem设计:
请看代码:
Function CheckItem(ID)
IF CheckCart=True THEN
varMudCart = Session("Cart")
FOR i = LBound(varMudCart)TO UBound(varMudCart)
IF varMudCart(i,0) = ID THEN
CheckItem=TRUE
Exit Function
ELSEIF varMudCart(i,0) $#@60;$#@62; ID THEN
CheckItem=FALSE
END IF
NEXT
END IF
End Function
起首判别推车是不是存在。然后将商品的编号ID和购物推车中的商品编号一一对照。假如有相等的,前往真。不然为假。
AddItem(ID,Qty)设计:
请参考本文的附件CartKit.asp,这里引见的函数咱们把它们封装到一个名为CartKit的class中。上面的代码段起首创立了一个CartKit对象,然后反省推车是不是已存在。假如不存在,就创立推车并新增商品;不然,反省商品编号是不是已存在于Cart中。假如是,就更新数目;不然,新增商品。
Function AddItem(ID, Qty)
Set CartObj = New CartKit
varCartStatus = CartObj.CheckCart
IF varCartStatus=false THEN
CartObj.CreateCart
mudCart=Session("Cart")
mudCart(0,0)=ID
mudCart(0,1)=Qty
Session("Cart")=mudCart
Exit Function
ELSEIF varCartStatus=true THEN
IF CartObj.CheckItem(ID) = true THEN
CartObj.UpdateItem ID,Qty
ELSEIF cartObj.CheckItem(ID) = false THEN
mudCart = Session("Cart")
FOR i = LBound(mudCart) TO UBound(mudCart)
IF mudCart(i,0) = "" THEN
mudCart(i,0) = ID
mudCart(i,1) = Qty
Session("Cart") = mudCart
Exit Function
END IF
NEXT
END IF
END IF
End Function
UpdateItem设计:
Function UpdateItem(ID, Qty)
mudCart = Session("Cart")
FOR i = LBound(mudCart) TO UBound(mudCart)
IF mudCart(i,0) = ID THEN
mudCart(i,1) = Qty
Session("cart")=mudCart
Exit Function
END IF
NEXT
End Function
ViewItem设计:
Function ViewItem()
mudCart=Session("Cart")
IF isArray(mudCart) THEN
%$#@62;
$#@60;table$#@62;
$#@60;tr$#@62;
$#@60;td$#@62;Item Name$#@60;/td$#@62;
$#@60;td$#@62;Item Quantity$#@60;/td$#@62;
$#@60;td$#@62;$#@60;/td$#@62;
$#@60;/tr$#@62;
$#@60;%
FOR i = LBound(mudCart) TO UBound(mudCart)
IF mudCart(i,0) $#@60;$#@62; "" THEN
%$#@62;
$#@60;tr$#@62;
$#@60;td$#@62;$#@60;%=%$#@62;$#@60;/td$#@62;
$#@60;%
Response.Write "Item ID: " & mudCart(i,0) & "$#@60;--"
Response.Write "$#@60;BR$#@62;"
Response.Write "Item Qty: " & mudCart(i,1) & "$#@60;--"
Response.Write "$#@60;BR$#@62;"
END IF
NEXT
ELSEIF isArray(mudCart) = False THEN
Response.Write "No item in your cart!"
Response.Write "$#@60;BR$#@62;"
Response.Write "Y don’t you do shop!"
END IF
End Function
RemoveItem(ID)设计:
Function RemoveItem(ID)
mudCart=Session("Cart")
’Find the Postion / Index of given ID.
For i = LBound(mudCart) TO Ubound(mudCart)
IF mudCart(i,0) = ID THEN
Pos=i
Exit For
END IF
Next
’Delete Process...
FOR i = Pos TO UBound(mudCart) - 1
IF Not mudCart(i,0) = "" THEN
mudCart(i,0) = mudCart(i+1,0)
END IF
Next
End Function
End Class REM 停止类CartKit的界说 </p> asp可以使用微软的activeX 使得网页功能无比强大,不过安全性也较差,而且是基于的windows服务器,所以性能稳定性也一般 |
|