XMLHTTP: 网站超级粘合剂

2016-02-19 14:49 1 1 收藏

下面这个XMLHTTP: 网站超级粘合剂教程由图老师小编精心推荐选出,过程简单易学超容易上手,喜欢就要赶紧get起来哦!

【 tulaoshi.com - Web开发 】

简介
   许多ASP开发者都希望在自己的网站中能够使用到微软提供的支持XML
  的新功能。其中,有些人发现可以使用XML来装饰网站,但是,如果仅仅
  是只使用XMLDOM的话,你就会失去其他一些更重要的东西。毕竟,XML是用来
  作为一种网上数据表现和数据交换的形象出现的。尽管使用XML可以非常满意
  地描绘你的数据,但是开发者却不得不使用CGI来进行浏览器和服务器之间的
  数据交换,除非你在浏览器端和客户端都使用XML文档。
   当然CGI从传达信息的角度来说是能够完全胜任的,但是如果要是和XML来
  一起使用的话就让XML失去了很多自己的用处。幸运的是,微软提供了一种更加
  有效的方法来传输XML,虽然该方法在很大程度上并不被人所重视。
   在微软提供的MSXML解释器包中有一系列的对象,也许没有人会重视其中的
  XMLHTTPConnection对象。简而言之,它允许你打开一个到服务器上的HTTP连接,
  发送一些数据和取回一些数据。并且所有的这一切都是在很少的几段脚本中就能够实现。
  使用XMLHTTP对象通常是进行XML数据交换,但其他格式的数据也是允许的。
  
  在商业程序中的运用
   这种交换类型的标准模式是客户端发送一个XML格式的文本字符串到服务端,
  然后服务端将这个字符串装载入一个XMLDOM对象中并且解释它,然后返回一段
  HTML给客户端,或则是另外一段XML代码给客户端让客户端的浏览器自己解释。
  在这种方式下,对于信息的传递来说是非常有效的形式,尤其是当你使用
  DHTML允许你根据返回信息动态显示时。
   举例如下(只能够运行在客户端和服务端都安装有IE5的情况下)
   %
   if (Request.ServerVariables("REQUEST_METHOD") == "POST" )
   {
   var req= Server.CreateObject("Microsoft.XMLDOM");
   req.async=false;
   req.load(Request);
   if (req.documentElement.nodeName=="timesheet")
   {
   //对数据随便进行一些处理。。。
   .....
   Response.write("h1Timesheet Updated!/h1b"+req.documentElement.text+"/b");
   }
   }
   else
   { %
  
   div id="divDisplay"The response will be put in here/div
   input type="button" onclick="sendData();" value="Send it!"
   script
   function sendData(){
   var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
   xmlhttp.Open("POST", "http://www.yoursite.com/thispage.asp", false);
   xmlhttp.Send("timesheetAn impossibly useless timesheet fragment/timesheet");
   divDisplay.innerHTML=xmlhttp.responseText;
   }
   /script
  % } %
  
   在上面的代码中,其中客户端的脚本将建立一个适当的COM对象,打开一个在网站
  www.yoursite.com的连接(使用了HTTP的POST方法,同步方式),使用Send方法发送
  一个XML片段,然后根据服务器上的响应填充divDisplay区域(这里使用了DHTML)。
  具体的执行过程是,在服务器上,Request对象被转载入一个XML文档然后被解释器解释。
  服务器响应XMLHTTP连接的方式和响应其他任何方式的HTTP连接是一样的,也是使用了
  Response对象。注意的是XMLHTTP本身并不检查request或则response的有效性,也就是说
  Request或则Response中的数据可是并不需要一定是XML文档。
   “聪明,”你也许会说。“但是为什么我们不使用CGI来代替它呢?”呵呵,我们要注意
  这样一件事,就是如果使用这种方式进行客户端--服务端的交互时整个页面并没有被刷新。
  我们都知道,如果要是通过CGI来做任何事情都必将导致浏览器接收一个完整的新页面,而
  这尤其影响

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)  通过一个VBA的宏给服务器发送一个请求,然后将响应载入XML文档,通过解释器解释后再
  插入Excel的电子表格中。这将是一个无痕的解决方案,简单的一个按钮也许会让你的老板、
  同事或任何其他人的关系大有改观。
   下面是我实现上述方法的一个代码片段。它使用XMLHTTP将服务器中的信息载入,然后将
  其插入电子表格中。
  
  Public Sub UpdateSheet()
  
   Dim xmlhttp
   Set xmlhttp = CreateObject("Microsoft.XMLHTTP")
   Call xmlhttp.Open("POST", "http://www.yourserver.com/yourpage.asp", False)
   Call xmlhttp.send("reqtimesheet user='jimbob'/")
  
   Dim xmldoc
   Set xmldoc = CreateObject("Microsoft.XMLDOM")
   xmldoc.async = False
   xmldoc.loadxml(xmlhttp.responsexml)
   Worksheets("TimeSheet").Range("A1").Value = xmldoc.documentelement.getAttribute("firstname")
   Worksheets("TimeSheet").Range("B1").Value = xmldoc.documentelement.getAttribute("lastname")
   Worksheets("TimeSheet").Range("C37").Value = xmldoc.documentelement.selectSingleNode("totalhours").Text
  End Sub
  
   这个VBA的宏相当的简单。给服务器发送一个请求,然后将服务器上的响应插入
  XML文档,然后更新Excel中cell中的内容。当然,我们可以使用这个技术做其他更多的运用。
  例如从一个Office运用程序中上载数据到服务器上的XML文档中(XML应该是你首选的格式,
  而不是Office 2000中提供的愚蠢的OfficeXML实现).或则把XML/ASP作为一个你数据库的shell
  这样,你的运用程序对于数据库就有了一个简洁、统一的接口,而对数据库结构的
  改动就不必要改动你所有的客户端代码了。
  
   我发现XMLHTTP对象在我的编程中非常的有用。我一般使用Visual Basic, Delphi, 和 Visual J++编写程序,在这个过程中,我经常发现这些语言各自对在线程序处理的方法非常地不同,
  他们各自有自己的对网络程序的处理机制,但是如果你要是在处理网络程序时都使用统一
  的XMLHTTP连接方式,那么连接服务器的代码将非常小,甚至更优化,这是一种对所有的
  语言都统一的接口。
  
  
  
  

来源:https://www.tulaoshi.com/n/20160219/1608014.html

延伸阅读
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) 对象创...
标签: Web开发
利用XMLHTTP无刷新获取数据. 客户端和服务器端数据的交互有几种方法. 1.提交,通过form/form提交到服务器端.也称"有刷新"吧. 2.通过XMLHTTP无刷新提交到服务器端,并返回数据.也称"无刷新"吧. 利用XMLHTTP我们可以实现很多很强大的应用.这文章主要介绍它的一 些简单的应用. 附:因为XMLHTTP是IE5.0+支持的对象.所以你必须要有IE5.0+才能看到效...
标签: Web开发
    试验如下: 提交Form代码(Test.htm): HTML HEAD META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0" TITLE/TITLE script language=javascript function Test() { strA = "submit1=Submit&text1=scsdfsd"; file://Looks like QueryString,But there's no "?" here! var oReq = new ActiveXObject("MS...
标签: ASP
  编写思路: 把本地文件在客户端通过base64编码以后发送目的地. 测试过程中,上传文件过大,导致超时不成功. 后来经过改善.把编码分段发送.测试20M成功 编写目的: 在传统的解决方案里面,一次一次选取上传可以.但是在碰到把数据库里文件路径读出来,并把这些文件上传到一个地方的时候就比较麻烦. 如果得到路径一个一个去找到用ftp当然也是可...
标签: Web开发
只做了一部份,IP查询请大家自己照着我里边的样例自己完成吧! 演示:http://www.goalercn.com/demo/searcher.asp %@LANGUAGE="VBSCRIPT" CODEPAGE="936"% !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "' target=_blank rel=nofollow>http://www.w3.org/TR/xhtml1/DTD/xhtml1-tra...

经验教程

876

收藏

83
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部