以下是我的asp页面中的代码
Ajax.asp
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Ajax.asp</title>
<script type="text/javascript">
function Delay(SECOND)
{
var xmlHttp;
try
{
xmlHttp=new XMLHttpRequest(); }
catch (e)
{
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
alert("Your browser does not support AJAX!");
return false;
}
}
}
xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState==4)
{
alert(xmlHttp.responseText);
}
}
xmlHttp.open("GET","Delay_Page.asp?SECOND="+SECOND,true);
xmlHttp.send(null);
return true
}
</script>
</head>
<body>
// below is the button for passing seconds
<input onclick="javascript:return (Delay('30')&& Delay('10')&& Delay('5'));" type="button" value="Button" name="B3">
</body>
</html>
在 Delay_Page.asp 中,这是代码
<%
ss= request.querystring("SECOND")
Sub Delay(DelaySeconds)
SecCount = 0
Sec2 = 0
While SecCount < DelaySeconds + 1
Sec1 = Second(Time())
If Sec1 <> Sec2 Then
Sec2 = Second(Time())
SecCount = SecCount + 1
End If
Wend
End Sub
Delay(SECOND)
response.write SECOND &" SECONDS left"
%>
上面的代码工作正常,但我想解决一些问题
我需要的是
我想一起调用Delay('30')&& Delay('10')&& Delay('5'))
个功能
现在条件是,当第一个函数完成Delay('30')
之后,只有它转到第二个函数
现在完成该功能的总时间为45秒(30 + 10 + 5)
我需要在30秒内完成这三项功能
希望你的帮助PLZ,
答案 0 :(得分:0)
我无法真正看到你的问题所在,所以它必须在你的asp页面中。我很遗憾地说我目前无法测试asp,所以我无法帮助那里。但是,我在PHP中写了一个假延迟并运行你的javascript。这是我以前测试的内容:
<?
if (isset($_GET['SECOND'])) {
for($i=0;$i<$_GET['SECOND']*100000;$i++) {
$x = sqrt($i);
}
echo $_GET['SECOND'].': x='.$x;
die();
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Ajax.asp</title>
<script type="text/javascript">
function Delay(SECOND)
{
var xmlHttp;
try
{
xmlHttp=new XMLHttpRequest(); }
catch (e)
{
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
alert("Your browser does not support AJAX!");
return false;
}
}
}
xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState==4)
{
document.getElementById('output').innerHTML += xmlHttp.responseText + "<br />";
}
}
xmlHttp.open("GET","ajax-test.php?SECOND="+SECOND,true);
xmlHttp.send(null);
return true
}
</script>
</head>
<body>
// below is the button for passing seconds
<input onclick="javascript:return (Delay('30')&& Delay('10')&& Delay('5'));" type="button" value="Button" name="B3">
<div id='output'></div>
</body>
</html>
PHP部分(在顶部)基本上只是浪费一些时间,具体取决于SECONDS值。虽然,它实际上只需要大约1/6的时间。以下是运行脚本的输出:
5: x=707.106074079
10: x=999.9995
30: x=1732.05051889
基本上,这只是显示在DELAY(10)之前返回5 DELAY(5),它在DELAY(30)之前返回,即使它们是以相反的顺序请求。
所以,看看你的asp延迟代码,因为问题必定存在。对不起,我无能为力。