📄 xml技术系列讲座(10)客户机与服务器的数据交互(下) - 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/2330.shtml -->
<HTML><HEAD><TITLE>XML技术系列讲座(10)客户机与服务器的数据交互(下) - 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技术系列讲座(10)客户机与服务器的数据交互(下) - 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技术系列讲座(10)客户机与服务器的数据交互(下) - 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技术系列讲座(10)客户机与服务器的数据交互(下) - 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技术系列讲座(10)客户机与服务器的数据交互(下)</H1></TH></TR>
<TR>
<TD align=middle height=20><FONT
color=#999999><SMALL>本文出自:http://www.computerworld.com.cn 作者: 北京邮电大学
张剑 (2002-02-11 07: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技术系列讲座(10)客户机与服务器的数据交互(下) - 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、XMLHTTP对象的Send方法</B></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD
class=a14>用Open方法对Request对象进行初始化后,调用Send方法发送XML数据:</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>poster.send XML-data</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD
class=a14>Send方法的参数类型是Variant,可以是字符串、DOM树或任意数据流。发送数据的方式分为同步和异步两种。在异步方式下,数据包一旦发送完毕,就结束Send进程,客户机执行其他的操作;而在同步方式下,客户机要等到服务器返回确认消息后才结束Send进程。</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD
class=a14>XMLHTTP对象中的readyState属性能够反映出服务器在处理请求时的进展状况。客户机的程序可以根据这个状态信息设置相应的事件处理方法。属性值及其含义如下表所示:</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>
<TABLE width="84%" border=1>
<TBODY>
<TR>
<TD width="21%">值</TD>
<TD width="79%">说明</TD></TR>
<TR>
<TD width="21%">0</TD>
<TD width="79%">Response对象已经创建,但XML文档上载过程尚未结束</TD></TR>
<TR>
<TD width="21%">1</TD>
<TD width="79%">XML文档已经装载完毕</TD></TR>
<TR>
<TD width="21%">2</TD>
<TD width="79%">XML文档已经装载完毕,正在处理中</TD></TR>
<TR>
<TD width="21%">3</TD>
<TD width="79%">部分XML文档已经解析</TD></TR>
<TR>
<TD width="21%">4</TD>
<TD
width="79%">文档已经解析完毕,客户端可以接受返回消息</TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><B>2、 服务器端的数据处理</B> </TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD
class=a14>服务器在接收到客户机发送过来的数据包后,会马上处理数据,并做出相应的响应。服务器先创建一个XMLDOM对象,然后将Request对象中的数据载入,并通过XMLDOM对象开始访问XML数据。</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD
class=a14>在获得XML数据的访问入口后,首先做的事情是对XML文档进行验证(这部分的具体过程我们将在后面介绍XML
Schema的时候一并说明)。一旦通过验证,就可以利用DOM接口对XML数据进行分析处理(例如:将提取的信息用来更新数据库中的记录)。</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>一个简单的ASP脚本如下:</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>Set docReceived =
CreateObject(“Microsoft.XMLDOM”)</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>docReceived.async = False</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>docReceived.load Request</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>Set rootNode =
docReceived.documentElement</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>Set nodeCustomer =
docReceived.selectSingleNode(“//customer”)</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>customerID =
nodeCustomer.firstChild.nodeValue</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>3、服务器端的响应消息</B></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD
class=a14>服务器在处理完XML数据之后,构造响应消息,并返回给客户机。消息的形式可以是纯文本、HTML页面、XML文档或者是嵌有XML数据岛的HTML页面。</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD
class=a14>首先来看一个HTML页面的例子,这个消息页面中包含了客户订购的信息:</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><H3>Confirmation of
order</H3></TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14><% For Each node In
listOrderitem</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>title =
node.getAttribute(“title”)</TD></TR></TBODY></TABLE>
<TABLE width=620 align=center>
<TBODY>
<TR>
<TD class=a14>Set quantityNode =
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -