【发布时间】:2013-11-10 23:05:28
【问题描述】:
我想附加到一个元素并让它立即更新。 console.log() 按预期显示数据,但 append() 在 for 循环完成之前什么都不做,然后一次全部写入。
index.html:
...
<body>
<p>Page loaded.</p>
<p>Data:</p>
<div id="Data"></div>
</body>
test.js:
$(document).ready(function() {
for( var i=0; i<5; i++ ) {
$.ajax({
async: false,
url: 'server.php',
success: function(r) {
console.log(r); //this works
$('#Data').append(r); //this happens all at once
}
});
}
});
server.php:
<?php
sleep(1);
echo time()."<br />";
?>
在 for 循环完成之前,页面甚至不会呈现。它不应该在运行 javascript 之前至少先渲染 HTML 吗?
【问题讨论】:
-
你为什么用
async: false?
标签: javascript jquery html ajax loops