+ -
当前位置:首页 → 问答吧 → [整理]自己整理的xmlHttp的使用,希望能抛砖引玉~~

[整理]自己整理的xmlHttp的使用,希望能抛砖引玉~~

时间:2005-01-20

来源:互联网

//--------------------------------------------------Begin---------------------------------------------------------
//一:创建Dom对象objDom

        //------------------------------------------------------
        //JScript/JavaScript:
        //        var doc = new ActiveXObject("Microsoft.XMLDOM")
        //VB Script:
        //        Dim doc
        //        Set doc = CreateObject("Microsoft.XMLDOM")
        //VB:
        //        Dim doc As Object
        //        Set doc = CreateObject("Microsoft.XMLDOM")
        //或者
        //        Dim doc As DOMDocument
        //        Set doc = New DOMDocument
        //------------------------------------------------------

        var objDom = new ActiveXObject("MICROSOFT.XMLDOM")
        objDOM.loadXML("<root><action>Inquiry</action><data/></root>")
//二:添加节点到Dom对象objDom
        var objNodeChild
        objNodeChild = objDom.createElement(strNodeName) //strNodeName是要新增节点的名称
        objNodeChild.text = strNodeValue //strNodeValue是要新增节点的值
        objDom.selectSingleNode(strNodeParent).appendChild(objNodeChild) //strNodeParent是要添加节点的父节点的路径;

        //或者是添加属性到存在的节点
        var objNewAttr
        objNewAttr = objDom.createAttribute(strAttrName)
        objNewAttr.text = strAttrValue
        objDom.selectSingleNode(strNode).Attributes.setNamedItem(objNewAttr)
//三:使用xmlHttp
        //创建xmlHttp对象
        var objHttp = new ActiveXObject("MICROSOFT.XMLHTTP")
        objHttp.open("POST",strAspPageName,false) //false 代表不异步处理
        objHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded")
        //传递Dom对象到指定页面
        objHttp.send(objDom)
        //接受指定页面处理之后的Dom对象
        objDom.load(objHttp.ResponseStream)
        //之后就可以对objDom中的数据进行操作
//
//---------------------------------------------------End---------------------------------------------------------
''''''''''''''''''''''''''''''''''''''''''''''''''''Begin''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''下面部分是在后台ASP页面中执行的操作
''
''四:指定页面strAspPageName要做的操作
        ''创建Dom对象objBackDom,用来返回到前台
        dim objBackDom
        set objBackDom = CreateObject("MSXML2.DomDocument")

        objBackDom.load "<root><action>response</action><result>fail</result><desc></desc><data/></root>"

        ''创建Dom对象objGetDom用来接受前台传递的Dom对象
        dim objGetDom
        set objGetDom = CreateObject("MSXML2.DomDocument")

        ''设置异步处理为false
        ''异步处理----false 为取消异步处理  true为开启异步处理
        ''若关闭异步处理,则要等到文档完全load进来之后才能将控制权交给代码
        ''若打开异步处理,则访问xml文档时应该先判断myDom.readyState
        ''其中:    readyState = 0   表示  未初始化:调入文档没有开始
        ''         readyState = 1   表示  调入:Load方法正在执行
        ''         readyState = 2   表示  调入完成:Load 方法已经完成
        ''         readyState = 3   表示  交互阶段:DOM可以进行只读检验,数据部分解析
        ''         readyState = 4   表示  完成:数据完全解析,可以进行读/写操作
        objGetDom.async = false
        objGetDom.load Request

        ''之后要做的就是定义变量获取objGetDom中的节点的值
        dim strAction
        strAction = objGetDom.selectSingelNode("//action").text

        ''根据获得值与数据库进行数据交互
        dim RS,conn

        ''获得查询到的数据并生成objBackDom
        dim objNodeChild
        set ohjNodeChild = objBackDom.createElement(strNodeName) ''strNodeName是要添加的节点名称
        ohjNodeChild.text = strNodeValue ''strNodeValue是要添加的节点的值
        objBackDom.selectSingleNode(strNodeParent).appendChild(ohjNodeChild)  ''strNodeParent是要添加子节点的父节点路径

        ''返回objBackDom到Client端
        objBackDom.save Response
        Response.end
''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''End''''''''''''''''''''''''''''''''''''''''''''''''''''''''

作者: venusfeng   发布时间: 2005-01-20

后台的处理机制采用的面向过程的方式(根据Action分发动作)
建议建立原子级页面,采用面向对象的思想会好些(不存在分发机制,一个原子级页面只处理一种情形)

作者: venusfeng   发布时间: 2005-01-20

作者: 崂山道士   发布时间: 2005-01-21

mark

作者: ioexception   发布时间: 2005-04-22