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

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

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

    哈哈哈哈哈
    HLT
        16
    HLT  
       Dec 30, 2016
    用 JS 库。。。很多
    Daemonguo
        17
    Daemonguo  
    OP
       Dec 30, 2016
    @bdbai 求教,有没有实现的案例?
    bdbai
        18
    bdbai  
       Dec 30, 2016 via Android
    @Daemonguo 你的后端是?一般后端框架都有处理的,有进度就往响应流里手动写入一点数据,完成再关闭。
    前端直接通过 XMLHttpRequest 监听 onreadystatechange 事件读服务器已发的数据,不用 jQuery 。
    About     Help     Advertise     Blog     API     FAQ     Solana     6119 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 105ms UTC 02:24 PVG 10:24 LAX 19:24 JFK 22:24
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86