1、C/S的通信模式
我们在前面文章中讨论客户机与服务器的数据交互时,数据流的方向总是从服务器到客户机,很少涉及到客户机向服务器发送请求并处理返回信息的问题。实际上,在电子商务中,客户机向服务器发送数据也是一个重要的环节,如用户填写的货物订单等。
在传统的实现方案中,用户端只要在订单中做出微小的变动,就要向服务器发送消息,要求更新数据。这样就增加了服务器和网络的负载,降低了工作效率。更有效的工作方式是在客户机端对变更的信息进行缓存,然后分批定量地发送给服务器,这样一些不确定的修改信息都首先存储在客户机,只有那些确定的需要更新的数据才会发送出去,从而避免了网络和服务器做许多无谓的操作。
2、基于XML的C/S
使用XML进行C/S间的通信是一种高效的工作方式。首先在客户机对XML数据打包,然后以XML数据包为单元发送给服务器,服务器在处理完数据之后返回消息,客户机接收到消息后执行其他操作,从而结束一次通信周期。
具体实现步骤如下:
● 客户机构造一个XMLDOM对象,作为发送XML数据的载体;
● 客户机创建一个XMLHTTP对象,该对象包括多种方法和属性,可以发送XML数据到服务器上的应用程序(如ASP页面),同时准备接收响应信息;
● 客户机将XML数据包转载到XMLHTTP对象上并发送给ASP页面;
● 服务器执行ASP,并创建一个服务器端XMLDOM对象来接收XML数据;
● ASP把数据包装载到服务器端的XMLDOM对象上;
● ASP对XML数据进行必要的处理,并返回确认消息;
● 客户机接收响应消息,执行下一步操作。
3、向服务器发送数据
客户机的首要任务是构造XML数据包。XMLDOM作为数据包的载体其数据来源可以是任何XML文档或是XML文档的片段(如XML数据岛),甚至可以是使用loadXML方法接收用户输入信息后动态生成的XML文档。
下面是动态生成的一个XML文档:
Set docSubmit = CreateObject(“Microsoft.XMLDOM”)
docSubmit.async = False
docSubmit.loadXML
“<?xml version=‘1.0’?>”&
“<customerorder>” &
“<customer>”&
txtCustomerID.Value &
“</customer>”&
“</customerorder>”
如果用户输入“5”作为用户ID,那么上面程序的运行结果如下所示:
<