我正在尝试一个接一个地打印循环迭代,而不是使用ajax来打印,这可能吗?喜欢迭代1迭代2
等等,但它们不应该一次而是一个接一个地作为循环工作
这是我的ajax和php代码。此时,整个代码处理过程并最终给出输出,而不是一个接一个的
<div id="div1"></div>
<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<script>
jQuery(document).ready(function($) {
$("button").click(function(){
$.ajax({url:"counter.php",success:function(result){
$("#div1").html(result);
}});
});
});
</script>
<button name="button" value="button" style="width:200px; height:200px;">
以下是PHP代码
<?php
for ($i = 0; $i < 10; $i++)
{
echo "<div>" . time() . ": Iteration $i</div>";
sleep(1);
flush();
}
?>
这是因为一旦发布请求循环,就会获得响应并将响应还原为ajax方法循环执行得太快了,一旦它执行了这么长时间,你就需要休眠循环,这样一旦你在几秒钟后再次执行循环得到结果,你就会再次得到响应
请按照这个超时功能休眠一段时间
在我所属的位置,您在整个循环中传递的参数,并且没有丢失动态值。。。。
> (function(i){
> setTimeout(function(){
>
> }, 1000 * i);
> }(i));
var currentCounter = 0;
var countTill = 10;
function invokeCounter()
{
$.ajax({url:"counter.php?counter="+currentCounter,success:function(result)
{
$("#div1").html(result);
if(currentCounter >= countTill)
{
clearInterval(myCounter);
}
currentCounter++;
}});
}
var myCounter = setInterval(function()
{
invokeCounter();
}, 1000);
在您的PHP中,您可以获得当前计数器
<?php
echo "<div>" . time() . ": Iteration ".$_GET['counter']."</div>";
?>
我想你知道这不是一个适合网络计数器的解决方案,但你可能正在JQuery/AAJX/PHP中进行实验/测试。