我一直在阅读有关的setInterval和我自己的方式来从一个页面发送多个Ajax请求上来。问题是,一旦我按下按钮1后按下按钮2,它会停止发送多个请求,如果我再次按下按钮1,它不会停止以前的setInterval()并启动并行请求。我试图达到的是,当我按下按钮1时,它必须只打印“1”30次,当我按下按钮2时,它必须停止打印“1”,但在睡眠5秒后打印“2”,如果我按下按钮1,它必须再次开始打印“1”并停止打印“2”。以下是我的代码:与多个AJAX的setInterval发出请求
<script language='javascript'>
var request = 0;
var request1 = 0;
$(document).ready(function() {
$("#hi button").click(function() {
var id = this.id;
if(request!=0){
clearInterval(request);
request1.abort();
}
request = setInterval(do_it,1000,id);
});
});
function do_it(id) {
request1 = $.ajax({
url: "php.php?id=" + id,
success: function (result) {
$("#result").html(result);
}
});
}
</script>
<div class="hi" id="hi">
<button id="1" ></button>
<button id="2" ></button>
</div>
<div id="result"></div>
PHP代码:
<?php
$word='';
include('sql_connect.php');
if($_GET['id'] == '1') {
$main = '1';
for($i = 0; $i < 30; $i++) {
$word .= $main . "<br>";
}
echo $word;
}
if($_GET['id'] == '2') {
$a = 0;
while($a != 1) {
sleep(5);
$a=1;
}
echo "2";
}
?>
任何帮助表示赞赏。感谢
你不想'request1.abort()'? – 2012-01-04 22:26:31
对不起,这就是我的原始脚本。还是同样的问题 – zista 2012-01-04 22:28:57