setInterval에 대해 읽었으며 한 페이지에서 여러 개의 Ajax 요청을 보내는 방법을 생각해 냈습니다. 문제는 단추 1을 누른 후 단추 2를 누르면 여러 요청을 보내는 것을 중지하고 단추 1을 다시 누르면 이전 setInterval()이 중지되지 않고 병렬 요청이 시작된다는 것입니다. 내가 달성하고자하는 것은 버튼 1을 누르면 30 번만 "1"을 인쇄해야하고 버튼 2를 누르면 5 초 동안 잠자기 상태에서 "1"을 인쇄하지만 인쇄를 중단해야합니다. 버튼 1을 다시 한번 누르면 "1"인쇄가 시작되고 "2"인쇄가 중지됩니다.setInterval 여러 Ajax 요청과 관련된 문제
<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()'싶지 않아 다음과 같은 방법으로의 setTimeout을 사용? –
예. 죄송합니다. 원본 스크립트에있는 내용입니다.여전히 같은 문제 – zista