📄 xml技术系列讲座(9)客户机与服务器的数据交互(上) - fanqiang_com.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0064)http://fanqiang.chinaunix.net/program/html/2002-02-11/2329.shtml -->
<HTML><HEAD><TITLE>XML技术系列讲座(9)客户机与服务器的数据交互(上) - fanqiang.com</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<STYLE type=text/css>BODY {
FONT: 12pt 宋体
}
TH {
FONT: 12pt 宋体
}
INPUT {
FONT: 12pt 宋体
}
SELECT {
FONT: 12pt 宋体
}
TEXTAREA {
FONT: 12pt 宋体
}
SELECT {
FONT: 12pt 宋体
}
checkbox {
FONT: 12pt 宋体
}
A:link {
COLOR: #e6a306; TEXT-DECORATION: underline
}
A:visited {
COLOR: #e6a306; TEXT-DECORATION: underline
}
A:hover {
COLOR: #ffff00; TEXT-DECORATION: underline
}
BODY {
FONT-SIZE: 12pt; FONT-FAMILY: "宋体", "serif"
}
TD {
FONT-SIZE: 12pt; FONT-FAMILY: "宋体", "serif"
}
P {
FONT-SIZE: 9pt; LINE-HEIGHT: 150%
}
</STYLE>
<META content="MSHTML 6.00.2800.1505" name=GENERATOR></HEAD>
<BODY text=#ffffff bgColor=#000000 leftMargin=0
background="XML技术系列讲座(9)客户机与服务器的数据交互(上) - fanqiang_com.files/bline.gif"
topMargin=5 onload=setTailPosition() marginwidth="0" marginheight="5">
<CENTER>
<TABLE cellSpacing=0 cellPadding=0 width=750 border=0>
<TBODY>
<TR>
<TD height=45>
<P align=center><IMG alt="[ 永远的UNIX::UNIX技术资料的宝库 ]"
src="XML技术系列讲座(9)客户机与服务器的数据交互(上) - fanqiang_com.files/title.gif">
</P></TD></TR>
<TR>
<TR>
<TD vAlign=bottom align=left height=40><SMALL><A
href="http://fanqiang.chinaunix.net/">首页</A> > 编程技术 > <A
href="http://fanqiang.chinaunix.net/program/html/index.shtml">HTML/JS/XML</A>
> 正文</SMALL></TD></TR>
<TR>
<TD width="100%" bgColor=#d09f0d colSpan=5 height=2><IMG height=1
src="XML技术系列讲座(9)客户机与服务器的数据交互(上) - fanqiang_com.files/c.gif"
width=1></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width=750 border=0>
<TBODY>
<TR>
<TD vAlign=top align=middle><BR>
<TABLE cellSpacing=0 cellPadding=0 width="90%" align=center border=0>
<TBODY>
<TR>
<TH class=f24>
<H1>XML技术系列讲座(9)客户机与服务器的数据交互(上)</H1></TH></TR>
<TR>
<TD align=middle height=20><FONT
color=#999999><SMALL>本文出自:http://www.computerworld.com.cn 作者: 北京邮电大学
张剑 (2002-02-11 06:15:00)</SMALL></FONT></TD></TR>
<TR>
<TD><BR>
<SCRIPT type=text/javascript><!--
google_ad_client = "pub-0052768304011480";
google_alternate_color = "000000";
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = "728x90_as";
google_ad_channel ="5959447789";
google_color_border = "000000";
google_color_bg = "666666";
google_color_link = "FFFFFF";
google_color_url = "FF9900";
google_color_text = "CCCCCC";
//--></SCRIPT>
<SCRIPT
src="XML技术系列讲座(9)客户机与服务器的数据交互(上) - fanqiang_com.files/show_ads.js"
type=text/javascript>
</SCRIPT>
</TD></TR>
<TR>
<TD height=15></TD></TR>
<TR>
<TD class=l17><FONT class=f14 id=zoom><FONT color=#cccccc><!-- 正文begin --><!--HTML_BEGIN-->
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><B>1、C/S的通信模式</B></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD
class=a14>我们在前面文章中讨论客户机与服务器的数据交互时,数据流的方向总是从服务器到客户机,很少涉及到客户机向服务器发送请求并处理返回信息的问题。实际上,在电子商务中,客户机向服务器发送数据也是一个重要的环节,如用户填写的货物订单等。</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD
class=a14>在传统的实现方案中,用户端只要在订单中做出微小的变动,就要向服务器发送消息,要求更新数据。这样就增加了服务器和网络的负载,降低了工作效率。更有效的工作方式是在客户机端对变更的信息进行缓存,然后分批定量地发送给服务器,这样一些不确定的修改信息都首先存储在客户机,只有那些确定的需要更新的数据才会发送出去,从而避免了网络和服务器做许多无谓的操作。</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><B>2、基于XML的C/S</B></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD
class=a14>使用XML进行C/S间的通信是一种高效的工作方式。首先在客户机对XML数据打包,然后以XML数据包为单元发送给服务器,服务器在处理完数据之后返回消息,客户机接收到消息后执行其他操作,从而结束一次通信周期。</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>具体实现步骤如下:</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>●
客户机构造一个XMLDOM对象,作为发送XML数据的载体;</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>●
客户机创建一个XMLHTTP对象,该对象包括多种方法和属性,可以发送XML数据到服务器上的应用程序(如ASP页面),同时准备接收响应信息;</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>●
客户机将XML数据包转载到XMLHTTP对象上并发送给ASP页面;</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>●
服务器执行ASP,并创建一个服务器端XMLDOM对象来接收XML数据;</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>● ASP把数据包装载到服务器端的XMLDOM对象上;</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>● ASP对XML数据进行必要的处理,并返回确认消息;</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>● 客户机接收响应消息,执行下一步操作。</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><B>3、向服务器发送数据</B></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD
class=a14>客户机的首要任务是构造XML数据包。XMLDOM作为数据包的载体其数据来源可以是任何XML文档或是XML文档的片段(如XML数据岛),甚至可以是使用loadXML方法接收用户输入信息后动态生成的XML文档。</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>下面是动态生成的一个XML文档:</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>Set docSubmit =
CreateObject(“Microsoft.XMLDOM”)</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>docSubmit.async = False</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>docSubmit.loadXML </TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>“<?xml version=‘1.0’?>”&
</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>“<customerorder>” &
</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>“<customer>”& </TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>txtCustomerID.Value & </TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>“</customer>”& </TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>“</customerorder>”</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD
class=a14>如果用户输入“5”作为用户ID,那么上面程序的运行结果如下所示:</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><?xml version=‘1.0’?> </TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><customerorder></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -