如何实现单击按钮后进度条开始走,同时执行后台的程序, 当程序执行完成,进度条也就达到 100%

2016-12-29 16:06:36 +08:00
 Daemonguo
4241 次点击
所在节点    JavaScript
18 条回复
qfdk
2016-12-29 16:11:03 +08:00
js ? socket io 跟后端通信 或者虚假一点 第一次 random 进度 最后 完成的 callback 跑满
am241
2016-12-29 16:17:08 +08:00
每次递增 1/(2**n)
inkWave
2016-12-29 16:19:20 +08:00
前面 99%想怎么写怎么写,接到成功回调后,直接进度条 width 100%
liyu4
2016-12-29 16:20:04 +08:00
没有非常好的办法,三楼的想法比较赞成。
knightdf
2016-12-29 16:25:42 +08:00
本来都是这样的,前面 99%随意你,后面 1%才是关键
dwood
2016-12-29 16:26:39 +08:00
要精确的话,后台程序异步执行的同时往缓存里面写进度,前端每隔一段时间请求进度值。
lijy91
2016-12-29 16:41:31 +08:00
你可以看看这个插件的逻辑: http://ricostacruz.com/nprogress/
Felldeadbird
2016-12-29 16:49:48 +08:00
做一个伪进度就可以了。等后端回来就直接 100%。
ChefIsAwesome
2016-12-29 16:56:27 +08:00
对用户真正有用的进度条是能看到结束时间的进度条。想知道结束时间基本是不可能的,想知道当前进度,要实现起来也是异常困难的。所以你还是弄个菊花转转吧。
wesley
2016-12-29 17:10:54 +08:00
分解成 N 个子任务,在队列中依次请求,每完成一个,进度增加 1/N
qwer1234asdf
2016-12-29 17:24:33 +08:00
ajaxForm
SpicyCat
2016-12-29 18:06:08 +08:00
用户想看进度条其实是有两层意思:
1. 想知道预估结束时间。很多时候这个办不到。
2. 想知道页面有没有死掉。这个简单。总之想办法让页面一直有反馈就行了,比如用户多次提交就提示用户耐心一点。
jsq2627
2016-12-29 19:09:17 +08:00
道理很简单啦
真的进度条只有在文件下载上传、压缩解压这种能准确衡量的情况下才能做出来
其他都是假进度条,只有 0 和 100 之分,动画只是骗人用的
bdbai
2016-12-29 19:30:19 +08:00
后端用 chunked 格式回响应,随时返回进度,兼容性也不错。
Tink
2016-12-29 22:40:14 +08:00
做一个 flash, 自动走到 100

哈哈哈哈哈
HLT
2016-12-30 09:37:37 +08:00
用 JS 库。。。很多
Daemonguo
2016-12-30 13:48:24 +08:00
@bdbai 求教,有没有实现的案例?
bdbai
2016-12-30 18:27:27 +08:00
@Daemonguo 你的后端是?一般后端框架都有处理的,有进度就往响应流里手动写入一点数据,完成再关闭。
前端直接通过 XMLHttpRequest 监听 onreadystatechange 事件读服务器已发的数据,不用 jQuery 。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/331034

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX