我有一个脚本可以遍历本地网络上的 IP,检查是否有任何内容。每次迭代,我都会提交一个 AJAX 请求以使用 cURL 获取 HTTP 状态代码,该代码会返回到我的 Javascript。我已经建立了计算进度条应该在哪里的函数,但是它只在整个脚本执行完成时更新进度条。
这是我到目前为止所拥有的(在这个例子中我只使用 0-23,因为我在 199.235.130.22 并且我返回 '200')
function updateProgress(percentage){
document.getElementById('progressBar').style.width = percentage+'%';
$('#progressText').html(percentage+'%');
}
for(host = 0; host <= 23; host++){
ipToCheck = network_addr+'130.'+host;
updateProgress(100/host);
$.ajax({
type: 'GET',
url: 'js/scanhelper.php',
data: {
ip: ipToCheck
}
}).done(function(msg) {
updateProgress(100/host);
if(msg!=0){
logSuccess(ipToCheck);
}
});
pausecomp(200); //Just a sleep function to simulate actual processing
}
我的 Bootstrap HTML 很简单
<div class="progress progress-striped active" style="height:44px;">
<div id="progressBar" class="bar" style="width:1%;"></div>
</div>
而且,如果重要的话,我的 cURL PHP 脚本在这里: http: //pastebin.com/JRZckdVb
这应该做的是,在每次迭代中,将进度条的宽度更新为 100(如 100%)除以当前迭代。这可能不是正确的数学,但关键是它只是在所有迭代完成后才更新,在页面运行时冻结页面。
我怎样才能解决这个问题?