当前位置: 首页 > 图文教程 > 网络编程 > ASP > 不离开页面刷新数据

ASP
一个ASP版的图片浏览管理器
无组件上传图片至SQLSERVER数据库
利用Jmail.Message发送邮件
用Web页面执行客户端程序
多图片上传到指定的目录并存到数据库
dreamweaverMX通用分页代码研究
下拉菜单输入,根据输入内容自动定位
中文的无组件文件上传ASP函数
一个利用adsi得到局域网信息的asp文件
根据需要动态include不同的文件
让自定义文件下载支持断点续传
用数组实现数据记录的批量录入方法
上传的进度条 实时反映上传情况
用ASP动态生成javascript的表单验证代码
ASP 编程中20个非常有用的例子
ASP生成Word文档的又一方法
用asp解析图片地址,并将其保存。
利用ASP的文件操作实现用户管理
创建 Visual Basic COM 组件在 ASP 中使用
调试 ASP 中使用的 Visual Basic COM 组件

ASP 中的 不离开页面刷新数据


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 61 ::
收藏到网摘: n/a

  开门见山,不离开页面就能刷新页面中的(部分)数据好处多多。主要是不需要写无聊代码维护 state。 ASP.NET (以及其雏形 VI6 SOM)中的 server-side control (VI6 DTC, Script Library) 通过大量 hidden input 来维护页面 state,其功力之深,非吾辈能及。所以我们要想办法不离开页面就能得到 新数据,这样生活会比较好过。

其实办法早就有很多。比如自己写 ActiveX Control 或 Java Applets,或使用系统自己带的。 如果是 IE 浏览器,很久以前就可以使用 ADO RDS 之类的方法从 server 端远程获取数据。 我们现在看看 XML 新石器时代的几种方法:

1. XMLHTTP
  这种方法意思和 RDS 差不多,但在 XML 时代,这种方法显得比较正经儿。
  网上有个比较好的例子:http://www.asptoday.com/articles/20001219.htm
  Using Fat Clients For E-commerce   作者起这个名字 (Fat client) 就是说要求 browser 要支持 XMLHTTP。
  代码片断:
  Function getCategories()
   Dim oXMLHTTP ' As Object
   Dim oCategories ' As Object
   Set oXMLHTTP = CreateObject("Microsoft.XMLHTTP")
   '--- set the XMLHTTP call and issue send (no parm as category
   '--- is included in URL
   oXMLHTTP.open "GET",SERVER_PATH & "demo.asp?action=getcategories",False
   oXMLHTTP.send
   '--- load the response into the Categories data island     
   dsoCategories.loadXML oXMLHTTP.responseText
   '--- transform into HTML and assign to innerHTML property
   divCategories.innerHTML = dsoCategories.documentElement.transformNode(dsoCategoriesXSL.documentElement)
   '--- tidy up the object
   Set oXMLHTTP = Nothing    
  End Function

  其实直接使用 DOMDocument.load 也是一样的。
  参见 http://www.chinaasp.com/sqlbbs/showEssence.asp?id=3586
  Zee 的帖子:“在IE里应用XML的一个小例子:解决双下拉选单的连动问题。”
  代码片断:
  var oXMLDoc = new ActiveXObject('MSXML');
  sURL = '<%=strPathInfo%>XMLCity.asp?State=' + sState;
  oXMLDoc.url = sURL;

  不显性地创建 ActiveXObject 也可以,变通的方法是使用 <XML ID="myData">。

2. 如何支持 Netscape browser?
  考虑到可以使用 XML SRC 的方式在页面中获得 XML data,我们可以仔细看一眼 HTML properties: SRC。
  可以注意到还有个常用 tag 具备这个 attribute -- IFrame。
  所以我们可以使用下面的思路来从 server 获取数据,这回我们不使用 XML island, ActiveX Object,以便支持 NN。
  a. 在页面中加一个隐藏的 IFrame。
  b. 需要调用数据时,语句形如:IFrame.src = "http://localhost/getData?a=123"
  c. 为了迎合 NN 的胃口,我们的返回值不是直接 XML Data,而是 HTML,这样才能被 IFrame 接受
  d. 但最重要的是,这个 HTML Page 实际上是一个 well-formed 的 XML document。比如:
   <HTML>
   <BODY>
   <P ID="P1">abc</P>
   <P ID="P2">def</P>
   <P ID="P3">ghi</P>
   </BODY>
   </HTML>
  e. 我们可以使用 client-side javascript 把这个 well-formed XML Doc 中的数据抓取出来,加入到我们的 select listbox 中。

  (是在一个同事那里看到的这个思路,感觉他是剑术通神后,捻花摘叶皆是剑,何必拘泥于 XML DOM Object。)


挂一漏万,希望大家再加上几种方法。
 '