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 相关文章推荐
PHP网站备份程序代码分享
Jun 10 PHP
PHP更新购物车数量(表单部分/PHP处理部分)
May 03 PHP
关于url地址传参数时字符串有回车造成页面脚本赋值失败的解决方法
Jun 28 PHP
php curl基本操作详解
Jul 23 PHP
php下pdo的mysql事务处理用法实例
Dec 27 PHP
PHP速成大法
Jan 30 PHP
php自定义类fsocket模拟post或get请求的方法
Jul 31 PHP
WordPress网站性能优化指南
Nov 18 PHP
将PHP程序中返回的JSON格式数据用gzip压缩输出的方法
Mar 03 PHP
PHP文字转图片功能原理与实现方法分析
Aug 31 PHP
PHP切割汉字的常用方法实例总结
Apr 27 PHP
PHP fopen中文文件名乱码问题解决方案
Oct 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一些错误处理的方法与技巧总结
2013/08/10 PHP
用 Composer构建自己的 PHP 框架之设计 MVC
2014/10/30 PHP
WordPress主题制作中自定义头部的相关PHP函数解析
2016/01/08 PHP
PHP消息队列用法实例分析
2016/02/12 PHP
Yii2 GridView实现列表页直接修改数据的方法
2016/05/16 PHP
MAC下通过改apache配置文件切换php多版本的方法
2017/04/26 PHP
仿校内登陆框,精美,给那些很厉害但是没有设计天才的程序员
2008/11/24 Javascript
JavaScript 匿名函数(anonymous function)与闭包(closure)
2011/10/04 Javascript
js为鼠标添加右击事件防止默认的右击菜单弹出
2013/07/29 Javascript
ExtJS4给Combobox设置列表中的默认值示例
2014/05/02 Javascript
jquery插件推荐浏览器嗅探userAgent
2014/11/09 Javascript
jquery结婚电子请柬特效源码分享
2015/08/21 Javascript
解析Node.js基于模块和包的代码部署方式
2016/02/16 Javascript
js跨域资源共享 基础篇
2016/07/02 Javascript
jQuery 3.0十大新特性
2016/07/06 Javascript
Bootstrap栅格系统的使用和理解2
2016/12/14 Javascript
Vue.js弹出模态框组件开发的示例代码
2017/07/26 Javascript
vue数字类型过滤器的示例代码
2017/09/07 Javascript
Vue 一键清空表单的实现方法
2020/02/07 Javascript
原生javascript实现类似vue的数据绑定功能示例【观察者模式】
2020/02/24 Javascript
基于JS实现table导出Excel并保留样式
2020/05/19 Javascript
ES11新增的这9个新特性,你都掌握了吗
2020/10/15 Javascript
利用Python中SocketServer 实现客户端与服务器间非阻塞通信
2016/12/15 Python
在pandas中一次性删除dataframe的多个列方法
2018/04/10 Python
Django Rest framework之认证的实现代码
2018/12/17 Python
Python简单基础小程序的实例代码
2019/04/28 Python
python设计tcp数据包协议类的例子
2019/07/23 Python
浅谈Pycharm的项目文件名是红色的原因及解决方式
2020/06/01 Python
在Tensorflow中实现leakyRelu操作详解(高效)
2020/06/30 Python
5分钟快速掌握Python定时任务框架的实现
2021/01/26 Python
美国领先的汽车轮胎和轮毂供应商:TireBuyer
2016/07/21 全球购物
运动会解说词200字
2014/02/06 职场文书
《春晓》教学反思
2014/04/20 职场文书
教师个人发展总结
2015/02/11 职场文书
Java Optional<Foo>转换成List<Bar>的实例方法
2021/06/20 Java/Android
python 多态 协议 鸭子类型详解
2021/11/27 Python