假設:有一些cablemodems,並且一個男人想要從MySQL數據庫中列出他們的數據。 (IP地址,MAC地址,modemtype,...)簡單的jQuery進度條
下面是HTML和PHP代碼:($限值:15或25或50,用戶可以選擇)
<table>
<?php
$sql = "SELECT ... needed fields from some tables... LIMIT $start, $limit";
$result = mysqli_query($conn, $sql) or trigger_error(mysqli_error($conn));
while ($row = mysqli_fetch_object($result)) {
echo "<tr class='modem_row' id='$row->modem_id' style='color:gray'>\n";
echo "<td>$row->mac_address</td>\n";
echo "<td>$row->ip_address</td>\n";
echo "<td>$row->type</td>\n";
// ...
echo "</tr>\n";
}
mysqli_free_result($result);
?>
</table>
<div id="progress" style="display:none; width:150px; height:20px"></div>
當數據庫查詢完成,然後一個jQuery腳本查詢所有顯示的調制解調器是否在線(通過SNMP)。這裏是jQuery腳本:
<script type="text/javascript">
$(function() {
$(".modem_row").each(function(){
var modem_id = $(this).attr("id");
$.ajax({
url: "/modules/get_modem_state.php?modem_id="+modem_id,
success: function(data) {
if (data == 'online') {
$('#'+modem_id).animate({color: 'black'});
}
}
});
});
});
</script>
好的,它的工作原理。但我想在一個簡單的HTML div中看到整個Ajax進度。當jQuery腳本開始時,那麼會出現'progress'div,然後在一個簡單的彩色條中顯示百分比,當所有ajax查詢完成時,'progress'欄消失。如果第一個查詢完成,那麼'progress'的div寬度將是10px,在第二個ajax查詢完成之後,'progress'div寬度將會是10px,如果$ limit = 15,那麼有15個ajax查詢。將20px等..)
我認爲應該使用jQuery Progressbar,但我不知道如何粘合在一起。
中狀態的進展並不容易/切斷和乾燥構建。你將如何計算完成百分比?前端需要輪詢一些有分母的東西,以便準確獲得進度百分比。 Ajax調用在開始時爲0%,在返回時爲100%。 – briansol 2014-10-03 14:48:39