石原莉奈在线观看先锋:如何在asp执行过程中暂停10秒?

来源:百度文库 编辑:中科新闻网 时间:2024/05/04 13:33:20
如何在asp执行过程中暂停10秒?
<%
response.write "开始"

' 此处暂停10秒'

response.write "结束"
%>

暂停10秒语句怎么写?

Private Function pause()
Dim Savetime As Single
Savetime = Timer
While Timer < Savetime + 0.4
DoEvents
Wend
End Function

什么乱七八糟的!!!!!

在ASP中是不好实现延迟5秒钟的.
如果强制使用循环来实现那么将使你的IIS在此期间占用100%CPU,如果访问该页面的人稍微多一点就会使IIS停止响应.

还是上面的liushizhong说的不错,如果真要实现的话应该配合客户端的脚本来实现.不过liushizhong的方法有时候无法达到某种目的,例如限制用户的登陆频率等等..

这里可以给出一个例子:

<script>
function change()
{
document.all["txt"].innerText="结束";
}
</script>
<body onload='setTimeout("change()",3000)'>
<div id=txt>
开始
</div>
<br>BY anuiz
</body>

这个脚本是在浏览器上执行的.一开始显示 开始,3秒钟后变成 结束.

http://www.qqread.com/java/z082439600.html
用getTime 方法 或者Sleep。。。。。
---下为转载
在java的Thread类中有两个有用的函数,sleep和yield,sleep就是线程睡眠一定的时间,也就是交出cpu一段时间,yield用来暗示系统交出cpu控制权。这两个函数在多线程开发的时候特别有用,可以合理的分配cpu,提高程序的运行效率。对于sleep来说,有一个用法可以代替yield函数——sleep(0)。调用这个函数也相当于告诉CPU交出cpu的控制权。

建议用JS来做,但还是给出ASP代码,这样符合你的标题。
<%
Const CUTTime = 2

Response.write "开始"
Response.Flush
CUT
Response.write "结束"
Response.Flush

Sub CUT()
Dim NOWTime
NOWTime = Now()
Response.write("<font color=blue>调用阻断,挂起流程.当前时间:" & NOWTime & "</font><br/>")
Response.Flush
Do While Datediff("s",NOWTime,Now()) < CUTTime
REM 阻断循环
Loop
Response.write("<font color=green>销毁阻断,恢复流程.当前时间:" & NOW() & "</font><br/>")
Response.Flush
End Sub
%>

在后台处理数据时,前台页面同时计数显示Proess Bar
使用了layer来显示
用法:
1。引用
<script language="javascript" src="ShowProcessBar.js"></script>
2。在提交Button或<A>或<span> 加扩展属性
IsShowProcessBar="True"

文件ShowProcessBar.js如下

AddProcessbar();
var bwidth=0;
var swidth = document.all.waiting.clientWidth;

function CheckIsProcessBar(obj)
{
if (obj.IsShowProcessBar=="True")
{
return false;
}
else
{
return true;
}
}

function CheckClick(e)
{
if (e == 1)
{
if (bwidth<swidth*0.98){
bwidth += (swidth - bwidth) * 0.025;
if (document.all)document.sbar.width = bwidth;
else document.rating.clip.width = bwidth;
setTimeout('CheckClick(1);',150);

}
}
else
{
if(document.all)
{
if(document.all.waiting.style.visibility == 'visible')
{document.all.waiting.style.visibility = 'hidden';
bwidth = 1;}
whichIt = event.srcElement;

while (CheckIsProcessBar(whichIt))
{
whichIt = whichIt.parentElement;
if (whichIt == null)return true;
}

document.all.waiting.style.pixelTop = (document.body.offsetHeight - document.all.waiting.clientHeight) / 2 + document.body.scrollTop;
document.all.waiting.style.pixelLeft = (document.body.offsetWidth - document.all.waiting.clientWidth) / 2 + document.body.scrollLeft;
document.all.waiting.style.visibility = 'visible';
if(!bwidth)CheckClick(1);
bwidth = 1;

}

else
{

if(document.waiting.visibility == 'show')
{document.waiting.visibility = 'hide';
document.rating.visibility = 'hide';
bwidth = 1;}
if(e.target.href.toString() != '')
{
document.waiting.top = (window.innerHeight - document.waiting.clip.height) / 2 + self.pageYOffset;
document.waiting.left = (window.innerWidth - document.waiting.clip.width) / 2 + self.pageXOffset;
document.waiting.visibility = 'show';
document.rating.top = (window.innerHeight - document.waiting.clip.height) / 2 + self.pageYOffset+document.waiting.clip.height-10;
document.rating.left = (window.innerWidth - document.waiting.clip.width) / 2 + self.pageXOffset;
document.rating.visibility = 'show';
if(!bwidth)CheckClick(1);
bwidth = 1;
}
}
return true;
}
}

function AddProcessbar()
{

var Str=""
Str+= "<div id=waiting style=position:absolute;top:50px;left:100px;z-index:1;visibility:hidden >";
Str+= "<layer name=waiting visibility=visible zIndex=2 >"
Str+= "<table border=2 cellspacing=1 cellpadding=0 bordercolorlight=#FFFFFF bordercolordark=#C0C0C0 bgcolor=#E0E0E0>"
Str+= " <tr>"
Str+= " <td bgcolor=#E0E0E0 height=30px width=300px align=center>"
Str+= " <font color=black>系统正在处理中...</font>"
Str+= " </td>"
Str+= " </tr>"
Str+= " <tr>"
Str+= " <td bgcolor=#E0E0E0>"
Str+= " <img width=1 height=10 name=sbar style=background-color:#6699cc>"
Str+= " </td>"
Str+= " </tr>"
Str+= "</table> "
Str+= "</layer>"
Str+= "</div>"
document.write(Str)

if(document.all)document.onclick = CheckClick;
}

测试文件TestShowBar.HTML

<HTML>
<HEAD>
<script language="javascript" src="ShowProcessBar.js"></script>
</HEAD>
<BODY>
<A href="error.asp" IsShowProcessBar="True">A Href</a>
<BR>
<BR>
<span onclick="location.href='error.asp'" style="cursor:hand" IsShowProcessBar="True"><font color=blue>Span</font></span>
<BR>
<form action="error.asp">
<input type=Submit value="Submit">
<input type=button value="normal button" IsShowProcessBar="True">
</form>
<P IsShowProcessBar="True">AAAAAAAAAAAAA</P>
</BODY>
</HTML>

asp中并没有延时这一项,单纯用asp肯定无法实现,
2个解决办法
1、使用do ..loop..循环,
a=程序开始执行时间当前时间
b=a+10秒,
当时间=b的时候,使用exit do退出循环,

2、使用javascript 的timeout,由asp一次性输出到客户端,客户端由javascript的timeout控制10秒后再显示后面的内容。可以设置“结束”部分css属性为display:none,10秒后更改为display:block

1的缺陷,当10秒的循环的时候,cpu为满负荷运转,
2的缺陷,一次性输出到客户端,可以通过查看源文件看到将要显示的内容。

各有长短,按需选择。

liushizhong@gmail.com
回答者:liushizhong - 见习魔法师 二级 3-19 18:51

赞同`````

你用延迟10秒就行
具体的自己去想一下
不要什么都要别人说清楚
那对自己的思维不利