閑話進(jìn)度條
對于程序員來說,進(jìn)度條(progress bar)大家都很熟悉,進(jìn)度條有不同的展現(xiàn)形式,包括傳統(tǒng)的橫向進(jìn)度條以及各種loading圖; 也有不同的實(shí)現(xiàn)方法,各種黑科技黑魔法。本文探討兩個問題,第一個為什么要有進(jìn)度條; 第二個,進(jìn)度條實(shí)現(xiàn)的一點(diǎn)點(diǎn)知識。重點(diǎn)在前者。
為什么要有進(jìn)度條,前些天在知乎日報上看到一個神吐槽:
--為什么男生追女生追著追著就放棄了?
--沒有進(jìn)度條提示啊
不禁想到前一段時間在閱讀《暗時間》的時候,也看到了這個問題。簡單來說,進(jìn)度條讓人心里有個預(yù)期(有盼頭),讓人相信總會完成。如果沒有進(jìn)度條,一個事情的狀態(tài)只有兩種結(jié)果,未完成(0),完成(1),而一般來說,未完成狀態(tài)會持續(xù)很久,在這個過程中,斗志被消磨,也就讓人過早的放棄了。甚至,沒有進(jìn)度條的話,根本不確定這件事情能否完成,這種不確定性也會讓人焦慮,進(jìn)度條就是安慰劑,讓人相信事情正在往預(yù)期的方向進(jìn)行,心情也放松了許多。
如果完成一個事情漫長且充滿不確定性,那么人們往往望而卻步,進(jìn)度條能讓人走出第一步,且越來越有信心,在完成的時候還能產(chǎn)生額外的快感。
有一年的時間,我租住在一個老小區(qū),六層,沒有電梯。而我又不喜歡鍛煉,因此每次爬上去都很累,身體累,心也累。怎么辦呢,每一層實(shí)際上由兩段樓梯組成,因此從一樓到六樓實(shí)際上要走十段,于是每走一段,心里就想已經(jīng)完成了十分之一,于是十分之一、五分之一、二分之一。。。我們都知道,行百里者半九十,就是說越到后面越難,但是有了進(jìn)度條,居然感到?jīng)]那么累了。
這里也能看到進(jìn)度條的另一個作用:分散注意力,因?yàn)殛P(guān)注點(diǎn)都幾種到現(xiàn)在走到了多少層,完成了幾分之幾,所以忘了抱怨,不知不覺就到了。這個在網(wǎng)頁加載中也是非常常見,使用各種炫酷的loading圖來分散大家的注意力,避免用戶因?yàn)闊o聊叉掉網(wǎng)頁。
之前閱讀了一篇文章,《技術(shù)大牛養(yǎng)成指南,一篇不雞湯的成功學(xué)實(shí)踐》,文章中提到一萬小時的練習(xí)確實(shí)可以成為技術(shù)牛人(當(dāng)然是一萬個小時的有效時間)。找到一萬個小時并不是很苦難(早起、地鐵、睡覺前、周末),難的是怎么堅持,道理大家都懂,但知易行難。因此,文中給出了可行的辦法:將目標(biāo)分階段。比如按技術(shù)水平分解,分成
1) 0 ~ 1年:菜鳥,需要別人手把手來教
2)1 ~ 3年:初級,需要別人帶你做
3)3 ~ 5年:高級,能獨(dú)當(dāng)一面,可以帶初級技術(shù)人員了
4)5 ~ 8年:資深,能獨(dú)擋多面
5)8 ~ 10年:大牛,統(tǒng)籌規(guī)劃,高屋建瓴
首先確定自己現(xiàn)在位置,瞄準(zhǔn)下一個目標(biāo),然后對于具體的技能或者領(lǐng)域,再設(shè)定小目標(biāo),比如作者的例子:要提到LInux水平
1)1個月:通讀《UNIX環(huán)境高級編程》
2)1個月:通讀《Linux系統(tǒng)編程》
3)2個月:通讀《UNIX網(wǎng)絡(luò)編程 卷1》
4)1個月:Linux常用命令實(shí)戰(zhàn):tcpdump、ps、top等
其實(shí),這也就是進(jìn)度條,將一個宏大而漫長的目標(biāo)(成為技術(shù)大牛)分解成一個個可行、可衡量的目標(biāo),每完成一個小目標(biāo),也就是進(jìn)度條往前推了一格,每前進(jìn)一步,信心更進(jìn)一層。
另外一個場景,比如玩游戲打boss,boss的血量一般都很大,需要團(tuán)隊(duì)協(xié)作較長一段時間才能打死。血條可以讓大家知道現(xiàn)在Boss的一個狀況,采取不同的策略。
最后回到程序員的角度,看看進(jìn)度條的實(shí)現(xiàn)。我認(rèn)為大致可以分成三種:
第一種:需要的時間是可預(yù)估的,那么采取比較真實(shí)的計算,實(shí)時更新。比如拷貝文件,下載內(nèi)容等。但是太真實(shí)可能也有副作用,比如進(jìn)度條的推進(jìn)速度可能不一致,時慢時塊,給人的感覺反而可能是卡了
第二種:需要的時間不大可能預(yù)估,或者預(yù)估不準(zhǔn)確,那么可以偽造進(jìn)度,比如按照一定的速度勻速增加。如果比實(shí)際的快,那么等待在99%。如果比實(shí)際的慢,那么最后 嗖 的一聲加速完成,就像升國旗一樣。
第三種:循環(huán)播放的loading圖,這個在網(wǎng)頁加載中太常見了。

浙公網(wǎng)安備 33010602011771號