仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 473|回复: 8
打印 上一主题 下一主题

[学习教程] ASP编程:开辟剖析实例:用ASP计划购物推车

[复制链接]
若天明 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:20:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
对于中小型web应用来说,php有很强的竞争力,linux+apache+mysql+php(lamp)的组合几乎可以胜任绝大多数网站的解决方案,对于大型应用来讲,对于系统架构要求更高,需要有成熟的框架支持,jsp的struts是个不错的框架,国内介绍它的资料也非常多,应用逐渐广泛起来。asp就不用说了,计划  甚么是购物推车?
  你必定往过超等市场吧。在那边你能够推着推车,将中意的商品放进推车,大概把推车里的商品掏出来从头放到货架,最初你推着推车往结账。
  那末,在网上超市,客户也应当能够在扫瞄商品目次时,将中意的商品放进"电子推车"。电子推车是超等市场推车的电子化。在网上商铺里,这类电子推车又称为"购物推车",英文是ShoppingCart。

  购物推车的计划方针
  从程序员的概念来看,购物推车是保护购物者商品选购、同意观察、同意修正的一个工具。购物推车自己是一个十分复杂的程序,但开辟者要思索它将毗连到商品目次子体系、定单子体系、客户账号子体系、站点办理子体系等等,构成功效完全的网上商铺。

  上面是购物推车的计划方针:
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)商品反省

  购物推车的计划
  购物推车必要三个要素:一个VBScript5的类classCartKit,一个多维数组mudCart,一个session变量Session("Cart")。
  这个VBScript类,我们称为CartKit,包括了8个办法,如上表所示。在本文我们只用了ID和Qty,分离暗示商品编号和数目。
  如许我们就能够用一个二维数组来表达这个推车,象上面如许:
商品编号商品数目
ID-123
ID-310
ID-236
ID-21
然后我们把这个二维数组保留到session变量中就能够了。
购物推车类CartKit的计划
请下载:CartKit.asp

CreateCart计划:
请看程序代码:
ClassCartKit
REM入手下手类CartKit的界说
SubCreateCart()
 IFIsArray(Session("Cart"))=falseTHEN
  DimmudCart(19,1)
  Session("Cart")=mudCart
 ENDIF
EndSub
个中:Session("Cart")保留的就是推车的内容。假如推车不存在,我们就界说一个二维数组mudCart来表达推车,并将它保留到session("Cart")中。

CheckCart计划:
本函数判别Cart是不是已创立。对照复杂。
FunctionCheckCart()
IFIsArray(Session("Cart"))THEN
  CheckCart=True
 ELSE
  CheckCart=False
 ENDIF
EndFunction

CheckItem计划:
请看代码:
FunctionCheckItem(ID)
IFCheckCart=TrueTHEN
  varMudCart=Session("Cart")
  FORi=LBound(varMudCart)TOUBound(varMudCart)
 IFvarMudCart(i,0)=IDTHEN
  CheckItem=TRUE
 ExitFunction
 ELSEIFvarMudCart(i,0)IDTHEN
  CheckItem=FALSE
 ENDIF
  NEXT
 ENDIF
EndFunction
起首判别推车是不是存在。然后将商品的编号ID和购物推车中的商品编号一一对照。假如有相称的,前往真。不然为假。

AddItem(ID,Qty)计划:
请参考本文的附件CartKit.asp,这里先容的函数我们把它们封装到一个名为CartKit的class中。上面的代码段起首创立了一个CartKit工具,然后反省推车是不是已存在。假如不存在,就创立推车并新增商品;不然,反省商品编号是不是已存在于Cart中。假如是,就更新数目;不然,新增商品。
FunctionAddItem(ID,Qty)
SetCartObj=NewCartKit
varCartStatus=CartObj.CheckCart
 IFvarCartStatus=falseTHEN
  CartObj.CreateCart
  mudCart=Session("Cart")
  mudCart(0,0)=ID
  mudCart(0,1)=Qty
  Session("Cart")=mudCart
   ExitFunction
 ELSEIFvarCartStatus=trueTHEN
 IFCartObj.CheckItem(ID)=trueTHEN
  CartObj.UpdateItemID,Qty
 ELSEIFcartObj.CheckItem(ID)=falseTHEN
  mudCart=Session("Cart")
 FORi=LBound(mudCart)TOUBound(mudCart)
 IFmudCart(i,0)=""THEN
  mudCart(i,0)=ID
  mudCart(i,1)=Qty
  Session("Cart")=mudCart
 ExitFunction
 ENDIF
 NEXT
 ENDIF
 ENDIF
EndFunction
UpdateItem计划:
FunctionUpdateItem(ID,Qty)
mudCart=Session("Cart")

 FORi=LBound(mudCart)TOUBound(mudCart)
  IFmudCart(i,0)=IDTHEN
   mudCart(i,1)=Qty
   Session("cart")=mudCart
   ExitFunction
  ENDIF
 NEXT
EndFunction
ViewItem计划:
FunctionViewItem()
mudCart=Session("Cart")
IFisArray(mudCart)THEN
%>
ItemName
ItemQuantity
<%
Response.Write"ItemID:"&mudCart(i,0)&"<--"
Response.Write"
"
Response.Write"ItemQty:"&mudCart(i,1)&"<--"
Response.Write"
"
ENDIF
NEXT
ELSEIFisArray(mudCart)=FalseTHEN
Response.Write"Noiteminyourcart!"
Response.Write"
"
Response.Write"Ydon’tyoudoshop!"
ENDIF
EndFunction
RemoveItem(ID)计划:
FunctionRemoveItem(ID)
mudCart=Session("Cart")
’FindthePostion/IndexofgivenID.
Fori=LBound(mudCart)TOUbound(mudCart)
 IFmudCart(i,0)=IDTHEN
  Pos=i
 ExitFor
ENDIF
Next
’DeleteProcess...
 FORi=PosTOUBound(mudCart)-1
  IFNotmudCart(i,0)=""THEN
  mudCart(i,0)=mudCart(i+1,0)
 ENDIF
 Next
 EndFunction
EndClassREM停止类CartKit的界说

CartKit.asp
------创建一辆购物车-----
ClassCartKit

SubCreateCart()
 IfIsArray(Session("Cart"))=falseThen
   DimmudCart(19,1)
   Session("Cart")=mudCart
 EndIf
EndSub

DimmyArray(3,1)
ReDimPreservemyArray(3,2)
DimmyArrayID(1),myArrayQty(1)
FunctionAddItem(ID,Qty)
 SetCartObj=NewCartKit
 varCartStatus=CartObj.CheckCart
 IfvarCartStatus=falseThen
   CartObj.CreateCart
   mudCart=Session("Cart")
   mudCart(0,0)=ID
   mudCart(0,1)=Qty
   Session("Cart")=mudCart
   ExitFunction
 ElseIfvarCartStatus=trueThen
   IfCartObj.CheckItem(ID)=trueThen
    CartObj.UpdateItemID,Qty
   ElseifcartObj.CheckItem(ID)=falseThen
    mudCart=Session("Cart")
    Fori=LBound(mudCart)TOUBound(mudCart)
    IfmudCart(i,0)=""Then
      mudCart(i,0)=ID
      mudCart(i,1)=Qty
      Session("Cart")=mudCart
      ExitFunction
    EndIf
   Next
   EndIf
 EndIf
EndFunction

FunctionRemoveItem(ID)
 mudCart=Session("Cart")
 Fori=LBound(mudCart)TOUbound(mduCart)
   IfmyArray(i,0)=IDThen
    Pos=i
    ExitFor
   EndIf
 Next

 Fori=PosTOUBound(myArray)-1
   IfNotmyArray(i,0)=""Then
    myArray(i,0)=myArray(i+1,0)
    myArray(i,1)=myArray(i+1,1)

   EndIf
 Next
EndFunction


RoleofProxy.asp
varAction=CStr(Request.QueryString("ac"))
SetmudCartObj=NewCartKit
varID=CStr(Request.Form("ID"))
varQty=Request.QueryString("qty")

IfvarAction="by"Then
 mudCartObj.AddItemvarID,varQty
 ElseIfvarAction="rm"Then
 mudCartObj.RemoveItemvarID
 ElseIfvarAction="up"Then
 mudCartObj.UpdateItemvarID,varQty
 ElseIfvarAction="ra"Then
 mudCartObj.RemoveAll
 ElseIfvarAction="co"Then
 MudcartObj.CheckOut
 ElseIfvarAction="cs"Then
 MudcartObj.ContinueShopping
EndIf


FunctionCartStatus()
 varTotalItems=0
 SetCartObj=NewCartKit
 IfCartObj.CheckCart=trueThen
   MudCart=Session("Cart")
   VarTotalItem=0
   Fori=Lbound(mudCart)TOUbound(mudCart)
   IfmudCart(i,0)""Then
    varTotalItem=varTotalItem+Cint(mudCart(i,1))
   EndIf
   Next
   ElseIfCartObj.CheckCart=FalseThen
   varTotalItem="0"
 EndIf
 CartStatus=varTotalItemEndFunction
 SetCartObj=Nothing
EndFunction

<%="Youhave"&Response.WriteCartObj.CartStatus&_
 "items(s)inyourcart"%>只要你想学,就没什么优缺点,上面那位大哥已经把网上的评论说了,但我认为想学哪个都一样,不然它就不可能在当今时代数字艺术方面存活到今天
爱飞 该用户已被删除
沙发
发表于 2015-1-19 09:05:43 | 只看该作者
ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。
板凳
发表于 2015-1-27 06:53:36 | 只看该作者
封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。
变相怪杰 该用户已被删除
地板
发表于 2015-2-5 04:03:05 | 只看该作者
你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。
第二个灵魂 该用户已被删除
5#
发表于 2015-2-11 04:27:37 | 只看该作者
我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.
若相依 该用户已被删除
6#
发表于 2015-3-1 21:42:05 | 只看该作者
ASP的语言不仅仅只是命令格式差不多,而是包含在<%%>之内的命令完全就是VB语法。虽然ASP也是做为单独的一个技术来提出的,但他就是完全继承了VB所有的功能。
金色的骷髅 该用户已被删除
7#
发表于 2015-3-11 00:36:32 | 只看该作者
下面简单介绍一下我学习ASP的方法,希望对想学习ASP的朋友有所帮助...
柔情似水 该用户已被删除
8#
发表于 2015-3-17 17:09:54 | 只看该作者
哪些内置对象是可以跳过的,或者哪些属性和方法是用不到的?
小魔女 该用户已被删除
9#
发表于 2015-3-24 14:46:37 | 只看该作者
哪些内置对象是可以跳过的,或者哪些属性和方法是用不到的?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2025-1-9 04:16

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表