php+javascript实现的动态显示服务器运行程序进度条功能示例


Posted in PHP onAugust 07, 2017

本文实例讲述了php+javascript实现的动态显示服务器运行程序进度条功能。分享给大家供大家参考,具体如下:

经常有这样的业务要处理,服务器上有较多的业务需要处理,需要分批操作,于是就需要一个提示客户现在完成进度的进度条。

这个是php+javascript的进度条。

<?php
//set_time_limit(0);    //注意,如果是安全模式,请不要打开,如果不是安全模式,这个选项可以打开
for ($i = 0; $i < 500; $i++) {
  $users[] = 'Tom_' . $i;
}  //end for
$width = 500;            //显示的进度条长度,单位 px
$total = count($users);       //总共需要操作的记录数
$pix = $width / $total;       //每条记录的操作所占的进度条单位长度
$progress = 0;           //当前进度条长度
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/transitional.dtd">
<html>
<head>
  <title>动态显示服务器运行程序的进度条</title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <style>
  body, div input { font-family: Tahoma; font-size: 9pt }
  </style>
  <script language="JavaScript">
  <!--
  function updateProgress(sMsg, iWidth)
  {
    document.getElementById("status").innerHTML = sMsg;
    document.getElementById("progress").style.width = iWidth + "px";
    document.getElementById("percent").innerHTML = parseInt(iWidth / <?php echo $width; ?> * 100) + "%";
   }
  //-->
  </script>
</head>
<body>
<div style="margin: 4px; padding: 8px; border: 1px solid gray; background: #EAEAEA; width: <?php echo $width+8; ?>px">
  <div><font color="gray">如下进度条的动态效果由服务器端 PHP 程序结合客户端 JavaScript 程序生成。</font></div>
  <div style="padding: 0; background-color: white; border: 1px solid navy; width: <?php echo $width; ?>px">
  <div id="progress" style="padding: 0; background-color: #FFCC66; border: 0; width: 0px; text-align: center;  height: 16px"></div>
  </div>
  <div id="status"> </div>
  <div id="percent" style="position: relative; top: -30px; text-align: center; font-weight: bold; font-size: 8pt">0%</div>
</div>
<?php
flush();  //将输出发送给客户端浏览器
foreach ($users as $user) {
  //   在此处使用空循环模拟较为耗时的操作,实际应用中需将其替换;
  //   如果你的操作不耗时,我想你就没必要使用这个脚本了 :)
  //   请在这里处理你的业务
  for ($i = 0; $i < 1000000; $i++) {
    ;;
   }
?>
<script language="JavaScript">
  updateProgress("正在操作用户“<?php echo $user; ?>” ....", <?php echo min($width, intval($progress)); ?>);
</script>
<?php
  flush();  //将输出发送给客户端浏览器,使其可以立即执行服务器端输出的 JavaScript 程序。
  $progress += $pix;
}  //end foreach
//  最后将进度条设置成最大值 $width,同时显示操作完成
?>
<script language="JavaScript">
  updateProgress("操作完成!", <?php echo $width; ?>);
</script>
<?php
flush();
?>
</body>
</html>

运行效果如下:

php+javascript实现的动态显示服务器运行程序进度条功能示例

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
centos 5.6 升级php到5.3的方法
May 14 PHP
php 文件上传类代码
Aug 06 PHP
php中判断文件空目录是否有读写权限的函数代码
Aug 07 PHP
安装apache2.2.22配置php5.4(具体操作步骤)
Jun 26 PHP
PHP仿博客园 个人博客(1) 数据库与界面设计
Jul 05 PHP
如何使用PHP获取指定日期所在月的开始日期与结束日期
Aug 01 PHP
php根据分类合并数组的方法实例详解
Nov 06 PHP
php动态函数调用方法
May 21 PHP
smarty简单应用实例
Nov 03 PHP
php中的常用魔术方法汇总
Feb 14 PHP
Ajax+PHP实现的分类列表框功能示例
Feb 11 PHP
PHP实现简单注册登录系统
Dec 28 PHP
php封装的mongodb操作类代码
Aug 06 #PHP
php批量转换文件夹下所有文件编码的函数类
Aug 06 #PHP
php mysql数据库操作类(实例讲解)
Aug 06 #PHP
PHP基于自定义类随机生成姓名的方法示例
Aug 05 #PHP
PHP实现腾讯与百度坐标转换
Aug 05 #PHP
laravel5.4生成验证码的实例讲解
Aug 05 #PHP
CakePHP框架Model函数定义方法示例
Aug 04 #PHP
You might like
php fsockopen中多线程问题的解决办法[翻译]
2011/11/09 PHP
php while循环得到循环次数
2013/10/26 PHP
php使用CURL不依赖COOKIEJAR获取COOKIE的方法
2015/06/17 PHP
在CentOS系统上从零开始搭建WordPress博客的全流程记录
2016/04/21 PHP
PHP 断点续传实例详解
2017/11/11 PHP
前台js改变Session的值(用ajax实现)
2012/12/28 Javascript
jQuery之按钮组件的深入解析
2013/06/19 Javascript
jquery操作cookie插件分享
2014/01/14 Javascript
jquery中的ajax方法怎样通过JSONP进行远程调用
2014/05/04 Javascript
Jquery弹出层插件ThickBox的使用方法
2014/12/09 Javascript
js表头排序实现方法
2015/01/16 Javascript
jQuery在页面加载时动态修改图片尺寸的方法
2015/03/20 Javascript
freemarker判断对象是否为空的方法
2015/08/13 Javascript
深入解析JavaScript中的数字对象与字符串对象
2015/10/21 Javascript
基于javascript实现的快速排序
2016/12/02 Javascript
从零学习node.js之搭建http服务器(二)
2017/02/21 Javascript
详解vue组件化开发-vuex状态管理库
2017/04/10 Javascript
Angular4学习教程之HTML属性绑定的方法
2018/01/04 Javascript
vue2.0 使用element-ui里的upload组件实现图片预览效果方法
2018/09/04 Javascript
使用Vuex解决Vue中的身份验证问题
2018/09/28 Javascript
Javascript实现简易天数计算器
2020/05/18 Javascript
[00:35]2016完美“圣”典风云人物:冷冷宣传片
2016/12/08 DOTA
[01:09:40]Newbee vs Pain 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
详解Python中如何写控制台进度条的整理
2018/03/07 Python
python系列 文件操作的代码
2019/10/06 Python
PyCharm 2020.1版安装破解注册码永久激活(激活到2089年)
2020/09/24 Python
css3隔行变换色实现示例
2014/02/19 HTML / CSS
北京华建集团SQL面试题
2014/06/03 面试题
物流仓管员工作职责
2014/01/06 职场文书
大学生通用个人的自我评价
2014/02/10 职场文书
收银出纳员岗位职责
2014/02/23 职场文书
关工委先进个人事迹材料
2014/05/23 职场文书
2014年九一八事变演讲稿
2014/09/14 职场文书
大学生村官工作总结2015
2015/04/09 职场文书
mysql中between的边界,范围说明
2021/06/08 MySQL
Go gRPC进阶教程gRPC转换HTTP
2022/06/16 Golang