推荐关注
› Meteor
› JSLint - a JavaScript code quality tool
› jsFiddle
› D3.js
› WebStorm
推荐书目
› JavaScript 权威指南第 5 版
› Closure: The Definitive Guide
Daemonguo

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

  •  
  •   Daemonguo · Dec 29, 2016 · 5603 views
    This topic created in 3600 days ago, the information mentioned may be changed or developed.
    Supplement 1  ·  Dec 30, 2016
    就比如说我点击了按钮 ” Install “ 对吧,那这时候我请求的 url 就去后端处理我的 install 请求对吧,那么我就想展示这个 install 的过程通过进度条展示出来。
    18 replies  •  2016-12-30 18:27:27 +08:00
    qfdk
    qfdk
    PRO
    Dec 29, 2016 via Android
    1
    js ? socket io 跟后端通信 或者虚假一点 第一次 random 进度 最后 完成的 callback 跑满
    am241
    am241
    Dec 29, 2016
    2
    每次递增 1/(2**n)
    inkWave
    inkWave
    Dec 29, 2016
    3
    前面 99%想怎么写怎么写,接到成功回调后,直接进度条 width 100%
    liyu4
    liyu4
    Dec 29, 2016
    4
    没有非常好的办法,三楼的想法比较赞成。
    knightdf
    knightdf
    Dec 29, 2016
    5
    本来都是这样的,前面 99%随意你,后面 1%才是关键
    dwood
    dwood
    Dec 29, 2016
    6
    要精确的话,后台程序异步执行的同时往缓存里面写进度,前端每隔一段时间请求进度值。
    lijy91
    lijy91
    Dec 29, 2016
    7
    你可以看看这个插件的逻辑: http://ricostacruz.com/nprogress/
    Felldeadbird
    Felldeadbird
    Dec 29, 2016
    8
    做一个伪进度就可以了。等后端回来就直接 100%。
    ChefIsAwesome
    ChefIsAwesome
    Dec 29, 2016
    9
    对用户真正有用的进度条是能看到结束时间的进度条。想知道结束时间基本是不可能的,想知道当前进度,要实现起来也是异常困难的。所以你还是弄个菊花转转吧。
    wesley
    wesley
    Dec 29, 2016
    10
    分解成 N 个子任务,在队列中依次请求,每完成一个,进度增加 1/N
    qwer1234asdf
    qwer1234asdf
    Dec 29, 2016
    11
    ajaxForm
    SpicyCat
    SpicyCat
    Dec 29, 2016
    12
    用户想看进度条其实是有两层意思:
    1. 想知道预估结束时间。很多时候这个办不到。
    2. 想知道页面有没有死掉。这个简单。总之想办法让页面一直有反馈就行了,比如用户多次提交就提示用户耐心一点。
    jsq2627
    jsq2627
    PRO
    Dec 29, 2016 via iPhone
    13
    道理很简单啦
    真的进度条只有在文件下载上传、压缩解压这种能准确衡量的情况下才能做出来
    其他都是假进度条,只有 0 和 100 之分,动画只是骗人用的
    bdbai
    bdbai
    Dec 29, 2016 via Android❤️1
    14
    后端用 chunked 格式回响应,随时返回进度,兼容性也不错。
    Tink
    Tink
    Dec 29, 2016
    15
    做一个 flash, 自动走到 100

    哈哈哈哈哈
    HLT
    HLT
    Dec 30, 2016
    16
    用 JS 库。。。很多
    Daemonguo
    Daemonguo
    OP
    Dec 30, 2016
    17
    @bdbai 求教,有没有实现的案例?
    bdbai
    bdbai
    Dec 30, 2016 via Android
    18
    @Daemonguo 你的后端是?一般后端框架都有处理的,有进度就往响应流里手动写入一点数据,完成再关闭。
    前端直接通过 XMLHttpRequest 监听 onreadystatechange 事件读服务器已发的数据,不用 jQuery 。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1728 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 64ms · UTC 12:48 · PVG 20:48 · LAX 04:48 · JFK 07:48
    ♥ Do have faith in what you're doing.