热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php实现进度条的方法是什么

php实现进度条的方法是:1、利用ajax请求逻辑处理的地址;2、在逻辑处理过程中,利用session保存处理进度;3、用ajax去请求另一个查询进度的地址,从而实现实时反馈。

php实现进度条的方法是:1、利用ajax请求逻辑处理的地址;2、在逻辑处理过程中,利用session保存处理进度;3、用ajax去请求另一个查询进度的地址,从而实现实时反馈。

php实现进度条主要有两种方式,一种是利用“输出缓冲控制”直接输出进度条,还有一种是ajax方式。

(学习视频推荐:java课程)

首先说一下“输出缓冲控制”方式:

该方式主要利用php的几个缓冲函数,该方式可以不用更改配置文件,直接运行即可,下面贴出代码:

正在处理...
0%%
&#39;; echo sprintf($html, $width+8, $width); echo ob_get_clean(); //获取当前缓冲区内容并清除当前的输出缓冲 flush(); //刷新缓冲区的内容,输出 $length = 11; for($i=0; $i<$length; $i++) { sleep(rand(1,2)); $proportion = ($i+1)/$length; if($i+1 == $length){ $msg = &#39;同步完成&#39;; }else{ $msg = &#39;正在同步第&#39; . ($i+1) . &#39;个用户&#39;; } $script = &#39;&#39;; echo sprintf($script, intval($proportion*100), intval(($i+1)/$length)*$width, $msg); echo ob_get_clean(); //获取当前缓冲区内容并清除当前的输出缓冲 flush(); //刷新缓冲区的内容,输出 }

“ajax方式”则稍微麻烦点,该方法的逻辑是利用ajax先去请求(最好是异步请求)”逻辑处理”的地址,逻辑处理过程中利用session或者其他存储介质(比如memcache,redis等)保存处理进度,在用ajax去请求(最好是同步请求)另一个查询进度的地址,实现实时反馈。

代码如下:

首先是html文件








    
    


test.php文件

 intval($proportion*100),
        &#39;progress&#39; => intval($width*($i+1)/$length),
        &#39;msg&#39; => $msg
    );
    session_start();
    $_SESSION[&#39;now_percent&#39; . $timestamp] = $data;
    session_write_close();  //释放session锁
}
echo json_encode(array(
    &#39;code&#39; => 10000,
    &#39;data&#39; => $data
));

test1.php

 10001,
        &#39;msg&#39; => &#39;正在处理...&#39;
    ));exit;
}else{
    echo json_encode(array(
        &#39;code&#39; => 10000,
        &#39;data&#39; => $now_percent
    ));exit;
}

补充:

1、之所以未用setinterval定时去查而用setTimeout是因为如果设置的时间过短,而请求响应时间过长就会出现显示混乱。

2、使用session后要注意及时释放,不然查询时会因为session被锁而一直等待,使用完就释放是最好的。


推荐阅读
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • 本文介绍了如何使用jQuery和AJAX来实现动态更新两个div的方法。通过调用PHP文件并返回JSON字符串,可以将不同的文本分别插入到两个div中,从而实现页面的动态更新。 ... [详细]
  • 本文介绍了DataTables插件的官方网站以及其基本特点和使用方法,包括分页处理、数据过滤、数据排序、数据类型检测、列宽度自动适应、CSS定制样式、隐藏列等功能。同时还介绍了其易用性、可扩展性和灵活性,以及国际化和动态创建表格的功能。此外,还提供了参数初始化和延迟加载的示例代码。 ... [详细]
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • Redis底层数据结构之压缩列表的介绍及实现原理
    本文介绍了Redis底层数据结构之压缩列表的概念、实现原理以及使用场景。压缩列表是Redis为了节约内存而开发的一种顺序数据结构,由特殊编码的连续内存块组成。文章详细解释了压缩列表的构成和各个属性的含义,以及如何通过指针来计算表尾节点的地址。压缩列表适用于列表键和哈希键中只包含少量小整数值和短字符串的情况。通过使用压缩列表,可以有效减少内存占用,提升Redis的性能。 ... [详细]
  • Ihavethefollowingonhtml我在html上有以下内容<html><head><scriptsrc..3003_Tes ... [详细]
  • 在springmvc框架中,前台ajax调用方法,对图片批量下载,如何弹出提示保存位置选框?Controller方法 ... [详细]
  • 在Android中解析Gson解析json数据是很方便快捷的,可以直接将json数据解析成java对象或者集合。使用Gson解析json成对象时,默认将json里对应字段的值解析到java对象里对应字段的属性里面。然而,当我们自己定义的java对象里的属性名与json里的字段名不一样时,我们可以使用@SerializedName注解来将对象里的属性跟json里字段对应值匹配起来。本文介绍了使用@SerializedName注解解析json数据的方法,并给出了具体的使用示例。 ... [详细]
  • 从零基础到精通的前台学习路线
    随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
  • express工程中的json调用方法
    本文介绍了在express工程中如何调用json数据,包括建立app.js文件、创建数据接口以及获取全部数据和typeid为1的数据的方法。 ... [详细]
  • 本文介绍了Java后台Jsonp处理方法及其应用场景。首先解释了Jsonp是一个非官方的协议,它允许在服务器端通过Script tags返回至客户端,并通过javascript callback的形式实现跨域访问。然后介绍了JSON系统开发方法,它是一种面向数据结构的分析和设计方法,以活动为中心,将一连串的活动顺序组合成一个完整的工作进程。接着给出了一个客户端示例代码,使用了jQuery的ajax方法请求一个Jsonp数据。 ... [详细]
  • Redis API
    安装启动最简启动命令行输入验证动态参数启动配置文件启动常用配置通用命令keysbdsize计算key的总数exists判断是否存在delkeyvalue删除指定的keyvalue成 ... [详细]
  • mui框架offcanvas侧滑超出部分隐藏无法滚动如何解决
    web前端|js教程off-canvas,部分,超出web前端-js教程mui框架中off-canvas侧滑的一个缺点就是无法出现滚动条,因为它主要用途是设置类似于qq界面的那种格 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
author-avatar
subingyi84
这个家伙很懒,什么也没留下!
Tags | 热门标签
RankList | 热门文章
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有