[风雨者]

山高路远,风雨兼程!

用户操作
[即时聊天] [发私信] [加为好友]
伍子ID:letsflytogether
81947次访问,排名1192(1)好友8人,关注者92
一个非计算机专业毕业的,带着对计算机的热爱,如今从事在软件开发领域。我想,我已经证明了专业不应是我们就业的标尺。
除了软件开发,我的爱好还有篮球和美食。
letsflytogether的文章
原创 67 篇
翻译 0 篇
转载 58 篇
评论 117 篇
伍子的公告
    没有比人更高的山,
    没有比脚更长的路。
------------------------
    既然选择了远方,
    便只顾风雨兼程。
------------------------
    失败只有一种,
    就是半途而废。
------------------------
    天下难事必作于易,
    天下大事必作于细。
------------------------
    从用户的角度考虑,
    你就成功了一半。
------------------------
    谁也不能随随便便地成功,
    它来自彻底的自我管理和毅力。
------------------------
月 [下月] [上月]
最近评论
liusping:如果执行一个命令有返回值,这个返回值该如何处理?定义成Command 的一个字段吗?
sap99:www.sap99.com/,SAP99资料多多

SAP免费资料下载
http://www.sap99.com

有很多的学习资料,推荐一下,
cqg1220:机柜
badonly:原来模板技术是这样的!!!谢了~~~
apollosun:恭喜啊

女儿就是宝,享福了啊

我女儿现在虚岁4岁,太可爱了,我每天下班回家的感觉就象过节。
文章分类
收藏
相册
个人风采
精品收藏
文章贴图
个人网站
女儿的博客
我在ITPUB上的博客
我在世界经理人上的博客
技术网站
CSDN
MSDN
UML软件工程组织
中国UI设计网
蓝色理想
软件工程专家网
休闲娱乐
学习网站
ICXO
网页设计师
金桥译港世界通
友情链接
heiyeluren的Blog(RSS)
博客中国上的琴剑楼
小肥羊
汉博园——陈希成
韦子的空中楼阁
资源网站
中国盟动力
太平洋电脑网
存档
软件项目交易
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
订阅到BlogLines
订阅到Yahoo
订阅到GouGou
订阅到飞鸽
订阅到Rojo
订阅到newsgator
订阅到netvibes

转载 XMLHTTP 参考资料收藏

新一篇: 痛,并快乐着 | 旧一篇: 用SleeK Action Wizard来构建基于php.MVC框架的应用程序

 MSXML中提供了Microsoft.XMLHTTP对象,能够完成从数据包到Request对象的转换以及发送任务。
创建XMLHTTP对象的语句如下:
Set objXML = CreateObject("Msxml2.XMLHTTP") 或
Set objXML = CreateObject(“Microsoft.XMLHTTP”)
' Or, for version 3.0 of XMLHTTP, use:
' Set xml = Server.CreateObject("MSXML2.ServerXMLHTTP")
对象创建后调用Open方法对Request对象进行初始化,语法格式为:
poster.open http-method, url, async, userID, password
Open方法中包含了5个参数,前三个是必要的,后两个是可选的(在服务器需要进行身份验证时提供)。参数的含义如下所示: 
http-method: HTTP的通信方式,比如GET或是 POST
url: 接收XML数据的服务器的URL地址。通常在URL中要指明 ASP或CGI程序
async: 一个布尔标识,说明请求是否为异步的。如果是异步通信方式(true),客户机就不等待服务器的响应;如果是同步方式(false),客户机就要等到服务器返回消息后才去执行其他操作
userID 用户ID,用于服务器身份验证
password 用户密码,用于服务器身份验证
XMLHTTP对象的Send方法
用Open方法对Request对象进行初始化后,调用Send方法发送XML数据:
poster.send XML-data
Send方法的参数类型是Variant,可以是字符串、DOM树或任意数据流。发送数据的方式分为同步和异步两种。在异步方式下,数据包一旦发送完毕,就结束Send进程,客户机执行其他的操作;而在同步方式下,客户机要等到服务器返回确认消息后才结束Send进程。
XMLHTTP对象中的readyState属性能够反映出服务器在处理请求时的进展状况。客户机的程序可以根据这个状态信息设置相应的事件处理方法。属性值及其含义如下表所示:
值 说明
0 Response对象已经创建,但XML文档上载过程尚未结束
1 XML文档已经装载完毕
2 XML文档已经装载完毕,正在处理中
3 部分XML文档已经解析
4 文档已经解析完毕,客户端可以接受返回消息
客户机处理响应信息
客户机接收到返回消息后,进行简单的处理,基本上就完成了C/S之间的一个交互周期。客户机接收响应是通过XMLHTTP对象的属性实现的:
● responseTxt:将返回消息作为文本字符串;
● responseXML:将返回消息视为XML文档,在服务器响应消息中含有XML数据时使用;
● responseStream:将返回消息视为Stream对象

------就是下面这个很简单的JAVASCRIPT函数SEND(STR,URL)---------------
使用到的是XMLDOM和XMLHTTP对象.用这种技术的好处是:全JS控制,方便/简单,比RDS
或者remote好多了.(前提:服务器端和客户端都必须安装IE5或者更高版本),在俺贴的
那个无刷新在线信息功能使用的也是这种技术.有兴趣的朋友可以看看..
function Send(Str,URL)
//STR参数是传入的XML数据,你也可以传入其他文本数据.
//不过这个函数需要服务器端处理之后返回XML数据,你也可以修改一下
//URL参数表示你所要处理数据的ASP文件地址
{
var Http = new ActiveXObject("Microsoft.XMLHTTP") //建立XMLHTTP对象
var Dom = new ActiveXObject("Microsoft.XMLDOM") //建立XMLDOM对象
Http.open("POST",URL,false)
//第一个参数的意思是,用"POST"方式发送数据.可以大到4MB,也可以换为"GET".只能256KB
//第2个参数的意思是数据发送到哪个文件处理
//第3个参数意思是同步或异步方式.TRUE为异步,FALSE为同步
Http.send(Str) //开始发送数据.............嘟嘟..
Dom.async=false //设置为同步方式获取数据
Dom.loadXML(Http.responseText)
//开始获取服务器端处理后返回的数据.我在这里设置必须为XML数据,否则出错.
//你也可以自己修改.使返回的是2进制或者记录集数据.................................
if(Dom.parseError.errorCode != 0) //检查是否发生获取数据时错误
{
delete(Http)
delete(Dom)
return(false)
}
else
{
var Back = Dom.documentElement.childNodes.item(0).text
//得到返回的XML数据,我这里假设处理程序只返回一行XML数据(一个节点)
delete(Http)
delete(Dom)
return(Back) //函数返回数据.......................结束
}
}
 
VAR CAT = Send("<用户资料><姓名>谢柠檬</姓名></用户资料>","HTTP://WWW.CHINAASP.COM/VIVA.ASP") //执行函数
IF(CAT == FALSE)
{
ALERT("对不起.处理程序返回的是FALSE.数据处理已经失败........")
}
ELSE
{
IF(EVAL(CAT))
{
ALERT("OK.数据已经发送成功.兼以处理完成!!!!!!")
}
ELSE
{
ALERT("对不起.处理程序返回的是FALSE.数据处理已经失败........")
}
}
 
===============================VIVA.ASP============================
ON ERROR RESUME NEXT
DIM BOBO
DIM MOMO
SET BOBO = SERVER.CREATEOBJECT("MICROSOFT.XMLDOM")
BOBO.ASYNC = FALSE
BOBO.LOAD REQUEST
IF BOBO.PARSEERROR.ERRORCODE <> 0 THEN
RESPONSE.WRITE("<程序处理结果><最终结果>FALSE</最终结果></程序处理结果>")
ELSE
SET MOMO = BOBO.DOCUMENTELEMENT
IF MOMO.CHILDNODES.ITEM(0).TEXT = "谢柠檬" THEN
RESPONSE.WRITE("<程序处理结果><最终结果>TRUE</最终结果></程序处理结果>")
ELSE
RESPONSE.WRITE("<程序处理结果><最终结果>FALSE</最终结果></程序处理结果>")
END IF
END IF
SET BOBO = NOTHING

















通过xmlHttp和ASP的结合,我们可以轻松完成网页的异步调用。
代码如下:
1.新建Display.asp(这是前台显示页面)
注意xmlhttp.readyState的4个属性
1:LOADING;2:LOADED;3:INTERACTIVE;4:COMPLETED

<%@ Language=VBScript %>
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</HEAD>
<script language="javascript">
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
function fnDo(ID)
{
    var xmlDom = new ActiveXObject("Msxml2.DOMDocument");         
    var strURL = "GetInfo.asp?ID=" + ID;
        
    xmlhttp.Open("POST",strURL , true);
    xmlhttp.onreadystatechange = fnRun;
        
    xmlhttp.Send(xmlDom);

    divTest.innerHTML = "Loading..."
}
//--------------------------------------------------------
function fnRun()
{
    var state = xmlhttp.readyState;
        
    var xmlDom = new ActiveXObject("Msxml2.DOMDocument");
        
    if (state == 4)
    {
        xmlDom.loadXML(xmlhttp.responseXML.xml);
        //alert(xmlDom.documentElement.selectSingleNode("//objXML").text)
        var getInfo = xmlDom.documentElement.selectSingleNode("//objXML").text;
        divTest.innerHTML = getInfo
    }        
}
</script>
<BODY>
<input type=button value="异步调用" onclick="fnDo(document.all.txtInput.value)">
<input type=text id=txtInput>
<DIV id=divTest></DIV>

<P> </P>

</BODY>
</HTML>

2.在建立GetInfo.asp(这是后台处理页面)
<%
Dim sID,objResult

sID = Trim(Request("ID"))
'sID = 28

Set objResult = Server.CreateObject("MSXML2.DOMDocument")
objResult.loadXML ("<objXML></objXML>")
'**************************************************************

'**************************************************************

objResult.selectSingleNode("objXML").text = "Get:" & sID

Response.ContentType = "text/xml"
objResult.save (Response)
Response.End

Set objSch = Nothing
Set objResult = Nothing
%>

3.运行Display.asp页面,在文本框里输入内容,点击按钮,可以看到Loading的提示,随后在不刷新页面的情况下得到了文本框里的内容。当然你也可以在GetInfo.asp那个页面里根据发送的参数做一些复杂的出来,随后把结果返回出来。

发表于 @ 2005年01月26日 22:32:00|评论(loading...)|编辑

新一篇: 痛,并快乐着 | 旧一篇: 用SleeK Action Wizard来构建基于php.MVC框架的应用程序

评论:没有评论。

发表评论  


当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
Csdn Blog version 3.1a
Copyright © 伍子