javascript - 进度条在块中更新,而不是每次更改
问题描述
我有一个工作进度条,用于跟踪在调用 Rscript 时创建的图表的创建进度。虽然我在每次 Rscript 调用后“更新”进度条,但进度条以 10 到 15 个单位为一组移动,而不是一次移动 1 个。每次通话后我都尝试了“flush()”,但没有帮助。有没有办法让进度条按照我想要的方式运行?这是代码片段:
<div id="bars" align="center">
<div align="left" id="progress" style="width:500px;border:1px solid #0066cc;"></div>
<!-- Progress information -->
<div id="information" align="center" style="width"></div>
</div>
<?PHP
$mid=0 ;
$lastone=250 ;
$i=1 ;
while ($i <=$lastone){
$fname='test'.$i ;
$cmdline='Rscript R/testscript.R' ;
exec ($cmdline) ;
$mid ++ ;
// update progress bar
$percent=$mid/$lastone*100 ;
$percent=intval($mid/$lastone *100)."%" ;
echo '<script language="javascript">
document.getElementById("progress").innerHTML="
<div style=\"width:'.$percent.';background-color:#0066CC;\">
</div>";
document.getElementById("information").innerHTML="'.$mid.' Graphs processed.";
</script>';
flush() ;
$i ++ ;
}
解决方案
可能您启用了输出缓冲。因此调用flush
只是发送等待输出数据但不刷新输出缓冲区本身。
尝试在每个之前添加ob_flush()flush()
推荐阅读
- python - 基于 sqlite DB 值的 Python 依赖组合框
- mysql - 从 3 个不同的表中选择 3 个不同的列 (COUNT) 并按日期分组
- flutter - 如何将数据库作为构造函数参数传递给......类并将其用作实例变量而不是使用 Provider.of
- cmake - 共享库中的CMake意外的传递私有依赖
- flutter - Flutter中是否有像TextEditingController这样的复选框控制器?
- xamarin.android - 相机屏幕周围的自定义边框
- python - 无法在 anaconda (Spyder) 中为 python 安装 googleads 模块
- javascript - PhpStorm 错误地认为 Event 构造函数没有任何参数
- promise - Rust/Webassembly/wasm-bindgen - 从 `js_sys' Promise 中获取值
- python - 计算两点之间的距离,如果 <1:添加到列表 x 和 y 坐标(人口程序)Python