开发者社区


Web服务 | ASP/ASP.Net | JSP | PHP/Perl | 网站设计
首页 - WEB技术
Web技术
全文搜索:   

用XML和ASP实现一个灵活的购物车
作者: Builder.com
2004-10-20 10:45:31



本文译自Builder.com,未经许可请勿转载

在线购物已经变得很平常了,而在使用购物车的时候,用户期望在其身上能够获得(足够的)灵活性。看看你能够如何把ASP和XML结合起来提供所用户需要的功能。

创建虚拟购物车的方法从来都不是单一的。最近,我碰到一个机会重新编写了一个经典的ASP购物车,让它成为一个拥有与原来类似的外观和感觉,但是更加灵活和更加快速的购物车。我决定利用XML,并开发一个跨浏览器的解决方案。现在让我来告诉你我自己碰到的一些问题,以及我是如何改进原有设计的。

原来的购物车
由于原来的购物车是针对特定的一组客户的,所以它更多地依赖于对用户的培训而非易用性。除了完全清空购物车,没有其他的机制用来对(所购的)内容进行更改。如果你往购物车里放入了错误的东西或者错误的数量,你不得不从头开始才能够更正这一错误。

而不为人知的是,原来的购物车再也无法变得更好。有限数量的行被显示出来,而客户会一页一页地翻阅购物车里的内容。这种方法的问题是,所有的东西都被保存在一个以ASP会话ID为基础的表格里。当客户浏览购物车内容的时候,就会进行一次查询。此外,如果会话超时,购物车的内容将会一直保留在表格里,直到有人手动删除它。

新的方法
我不想重复以前的错误,所以新的购物车将会基于XML会话而不会基于表格。这种方法有多个好处。首先,整个购物车以XML数据岛(Data Island)的形式保存在客户端上,如下面列表A所示。在进行简单浏览的时候,这就不再需要对表格进行查询了。但是用到了MozillaDSO()和xmlPage()函数。

列表A

除了浏览,xmlPage()方法还提供了原来的购物车不具备的功能——更改数量和删除物品的能力。由于它使用了两个XML数据岛——一个是绑定,另一个是非绑定——所以对绑定数据岛的更改不会影响到非绑定数据岛,直到点击更新键。一旦更新按钮被点击,就会有一种机制,比如XMLHTTP,把变化传送给服务器。如果由于某种原因你无法完全信任微软Internet Explorer和Mozilla里的XMLHTTP,那么一个带有隐藏式框架(例如iframe)和输入框的表单可以被用来实现同样的目的。下面的列表B显示了更新函数背后的JavaScript。

【下一页】
声明:
Builder.com.cn(原ZDNet China应用开发频道)原创文章版权所有,未经许可严禁转载,且不构成投资建议。
近期相关报道:
实用技术文档
J2me XML
C/C++ C#
Java Oracle
Mysql .Net
VB.NET CSS
SQL Server 数据库
SQL UNIX
Linux Jsp
PHP Perl
Javascript IIS
XHTML ColdFusion
ASP/ASP.NET Apache
AJAX
订阅技术邮件
订阅"技术圈"杂志!请在下面选择您感兴趣的专题,填写e-mail地址,然后按订阅按钮:
应用开发管理
VS.NET 周刊
Database 周刊
WEB Service周刊
JAVA 周刊
IT 认证
Windows服务器周刊
互联网开发
当Windows Server 2008专家得5000元现金大奖
CNET NETWORKS 中国: 爱卡汽车网 | CNET科技资讯网 | e询网 | CWEEK | 蜂鸟网 | GameSpot China | 个人电脑 | PChome | SPN | 网友世界 | ZDNet China | 中关村在线
CNET NETWORKS 美国: BNET | CNET.com | CNET Download.com | CNET News.com | CNET Reviews | CNET Shopper.com | GameSpot | MP3.com | mySimon | Release 1.0 | Search.com | TechRepublic | TV.com | Webshots | ZDNet
Copyright (c) 2006 CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
ZDNet 公司标识是 CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号