[奇怪]一个关于显示“请等待”信息的问题……

sinzy 2002-12-24 02:59:40
我在程序中使用了XMLHTTP技术,等待数据传回需要一点时间,于是我在客户端页面中设了一个div用于显示诸如“请等待”之类的信息,由其style.display属性(或者visibility属性)决定显示与否。

然而运行时却没有看到div层的显示和隐藏的变化。

于是我添加进MsgBox语句中断检查,发现显示及隐藏的代码运行正确,但是一取消MsgBox,就还是看不到效果。

请问这是怎么回事?难道是XMLHTTP限制了页面更新?

我的代码框架:
Sub XXX()
ShowWaitMessage

建立XMLHTTP对象并操作
操作完毕,清空对象

HideWaitMessage
End Sub


Plz help, thanks!
...全文
7 点赞 收藏 9
写回复
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
sinzy 2002-12-24
OK!搞定!
VBS的问题在于函数指针需要用GetRef()取得,我疏忽了……:p

以前不能正常显示是因为用了异步方式,但是具体原因还没弄清清楚。使用同步打开方式后,配合onreadystatechange属性一切如愿!

感谢孟子兄!!!
回复
allforly 2002-12-24
vbscript:
xmlhttp_onReadyStateChange,用_来调用
回复
sinzy 2002-12-24
难道那一段使用onreadystatechange属性的代码只能用JScript/JavaScript写吗?我用VBScript就说类型不匹配……
回复
sinzy 2002-12-24
感谢孟子!我曾试过这种方法,使用onstatechange属性,不过我的VBScript代码总是被报措……

我再试试看,再次谢谢!!!
回复
逍遥小贼 2002-12-24
支持孟子E章的解法,学习~~
回复
孟子E章 2002-12-24
<script>
var oDiv //添加用的节点
var nP //DIV的 padding-left
var xh //xmlhttp
function getXML()
{
oDiv = document.all.m
oDiv.innerHTML = "正在装载栏目数据,请稍侯......."
oDiv.style.display= ""
xh = new ActiveXObject("Microsoft.XMLHTTP")
xh.onreadystatechange = getReady
xh.open("GET",a.value,true)
xh.send()
}

function getReady()
{
if(xh.readyState==4)
{
if(xh.status==200)
{

oDiv.innerHTML = "完成"
}
else
{
oDiv.innerHTML = "抱歉,装载数据失败。原因:" + xh.statusText
}
}
}
</script>
URL:<input name=a value="http://www.microsoft.com">
<input onclick="getXML()" type="button" value="get HTML">
<input onclick="if(xh && xh.responseText) oDiv.innerHTML=xh.responseText" type="button" value="output">
<div id=m></div>
回复
sinzy 2002-12-24
是异步方式没错

xxx.open "post", "xxxx.asp", False

对吧?
回复
孟子E章 2002-12-24
要用异步方式
回复
孟子E章 2002-12-24
要用异步方式
回复
发动态
发帖子
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
社区公告
暂无公告