简单生活 发表于 2015-1-16 22:46:34

ASP教程之XMLHTTP 先容

asp,jsp,php是web开发的三大技术,asp简单易用且有microsoft做靠山,jsp功能强大是因为有java支持,php则开源跨平台.在国内,asp应用范围最广,jsp发展势头最猛,php则处于劣势.这可能与公司的支持以及技术的培训有关.xmlMSXML中供应了Microsoft.XMLHTTP工具,可以完成从数据包到Request工具的转换和发送义务。创立XMLHTTP工具的语句以下:
SetobjXML=CreateObject("Msxml2.XMLHTTP")或
SetobjXML=CreateObject(“Microsoft.XMLHTTP”)
Or,forversion3.0ofXMLHTTP,use:
Setxml=Server.CreateObject("MSXML2.ServerXMLHTTP")工具创立后挪用Open办法对Request工具举行初始化,语法格局为:
poster.openhttp-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.sendXML-data
Send办法的参数范例是Variant,能够是字符串、DOM树或恣意数据流。发送数据的体例分为同步和异步两种。在异步体例下,数据包一旦发送终了,就停止Send历程,客户机实行其他的操纵;而在同步体例下,客户秘密比及服务器前往确认动静后才停止Send历程。
XMLHTTP工具中的readyState属功能够反应出服务器在处置哀求时的停顿情况。客户机的程序能够依据这个形态信息设置响应的事务处置办法。属性值及其寄义以下表所示:
值申明
0Response工具已创立,但XML文档上载历程还没有停止
1XML文档已装载终了
2XML文档已装载终了,正在处置中
3部分XML文档已剖析
4文档已剖析终了,客户端能够承受前往动静客户机处置呼应信息
客户机吸收到前往动静后,举行复杂的处置,基础上就完成了C/S之间的一个交互周期。客户机吸收呼应是经由过程XMLHTTP工具的属性完成的:
●responseTxt:将前往动静作为文本字符串;
●responseXML:将前往动静视为XML文档,在服务器呼应动静中含有XML数据时利用;
●responseStream:将前往动静视为Stream工具
------就是上面这个很复杂的JAVASCRIPT函数SEND(STR,URL)---------------利用到的是XMLDOM和XMLHTTP工具.用这类手艺的优点是:全JS把持,便利/复杂,比RDS
大概remote很多多少了.(条件:服务器端和客户端都必需安装IE5大概更高版本),在俺贴的
谁人无革新在线信息功效利用的也是这类手艺.有乐趣的伴侣能够看看..functionSend(Str,URL)
//STR参数是传进的XML数据,你也能够传进其他文本数据.
//不外这个函数必要服务器端处置以后前往XML数据,你也能够修正一下
//URL参数暗示你所要处置数据的ASP文件地点
{
varHttp=newActiveXObject("Microsoft.XMLHTTP")//创建XMLHTTP工具
varDom=newActiveXObject("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
{
varBack=Dom.documentElement.childNodes.item(0).text
//失掉前往的XML数据,我这里假定处置程序只前往一行XML数据(一个节点)
delete(Http)
delete(Dom)
return(Back)//函数前往数据.......................停止
}
}VARCAT=Send("<用户材料><姓名>谢柠檬</姓名></用户材料>","")//实行函数
IF(CAT==FALSE)
{
ALERT("对不起.处置程序前往的是FALSE.数据处置已失利........")
}
ELSE
{
IF(EVAL(CAT))
{
ALERT("OK.数据已发送乐成.兼以处置完成!!!!!!")
}
ELSE
{
ALERT("对不起.处置程序前往的是FALSE.数据处置已失利........")
}
}========================VIVA.ASP======================
ONERRORRESUMENEXT
DIMBOBO
DIMMOMO
SETBOBO=SERVER.CREATEOBJECT("MICROSOFT.XMLDOM")
BOBO.ASYNC=FALSE
BOBO.LOADREQUEST
IFBOBO.PARSEERROR.ERRORCODE0THEN
RESPONSE.WRITE("<程序处置了局><终极了局>FALSE</终极了局></程序处置了局>")
ELSE
SETMOMO=BOBO.DOCUMENTELEMENT
IFMOMO.CHILDNODES.ITEM(0).TEXT="谢柠檬"THEN
RESPONSE.WRITE("<程序处置了局><终极了局>TRUE</终极了局></程序处置了局>")
ELSE
RESPONSE.WRITE("<程序处置了局><终极了局>FALSE</终极了局></程序处置了局>")
ENDIF
ENDIF
SETBOBO=NOTHING由于ASP还是一种Script语言所没除了大量使用组件外,没有办法提高其工作效率。它必须面对即时编绎的时间考验,同时我们还不知其背后的组件会是一个什么样的状况;

变相怪杰 发表于 2015-1-19 23:24:37

哪些内置对象是可以跳过的,或者哪些属性和方法是用不到的?

深爱那片海 发表于 2015-1-27 06:08:23

我想问如何掌握学习节奏(先学什么再学什么)最好详细点?

愤怒的大鸟 发表于 2015-2-5 00:32:16

Session:这个存储跟客户端会话过程的数据,默认20分钟失效

金色的骷髅 发表于 2015-2-11 00:09:36

那么,ASP.Net有哪些改进呢?

admin 发表于 2015-3-1 18:24:45

代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。

若天明 发表于 2015-3-10 21:59:14

多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。

简单生活 发表于 2015-3-17 11:08:40

运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。

山那边是海 发表于 2015-3-24 08:18:17

Server:这个表示的服务器,操作服务器的一些东西使用这个,如Server.Mappath转换服务器路径,Server.CreateObject实例化一个组件
页: [1]
查看完整版本: ASP教程之XMLHTTP 先容