欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

PHP 进度条

程序员文章站 2022-04-26 19:41:44
...
PHP做进度条时,可以用 ob_flush(); flush(); 两个函数来刷新缓存,将缓存中的信息发往浏览器。但要注意很多服务器会积累满4k左右的内容才发送,所以可以通过填充空格( echo str_pad('', 4096); )来强制刷新。
publicfunctioninsert($data,$html)
    {echo$html;
        $i = 0;
        $sum = count($data);
        if($sum == 0){
            echo"数据出错";
            return;
        } 
        $noped = 0;
        try { 

               foreach($dataas$v){ 
                    $tdata[] = $v;
                    $i++;
                    if( $i%20==0 || $i==$sum-1){ 
                        $ret = $this->btrManger_m->inserts100($tdata); //一次插入100条if($ret){ 
                            $s = $i/$sum*100;
                            echo str_pad('', 4096); //填充缓存echo".($s).");";
                            ob_flush();
                            flush();
                        }
                        else{ //出错 终止break;
                        }
                        $tdata = array();
                    } 
            }
        } catch (Exception$e) {
            echo$e; 
            return;
        }
        $resultStr = "'共计".$sum."条记录,成功操作完成".$i."条!'";
        echo".$resultStr.");";
    }

前端用bootstrap的进度条实现:

functionsetProgressBar(width){
    str=width+"%";
    $('.progress-bar').attr('aria-valuenow',str).css('width',str) .html(str);
    if(width == 100){
        $('#idInsertResult').html("数据操作完成!");
    }
}
div