欢迎光临
我们一直在努力

建站超值云服务器,限时71元/月

开门见山,不离开页面就能刷新页面中的(部分)数据好处多多。主要是不需要写无聊代码维护 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。)

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

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 »
分享到: 更多 (0)

相关推荐

  • 暂无文章