下载最怕什么,那绝对是进度条:99%。 程序员
这是一个充满魔力的数字,曾让我狂躁、焦虑,甚至激动得想砸键盘锤电脑扔手机。服务器
好比下载学习资料或看动做大片,苦苦等待2小时,好不容易下到99%,觉得2秒后就能享受大片的美妙,步入极乐世界。网络
结果半小时过去了,进度条死死卡在99%,任你千兆光纤,专线宽带,愣是一丝不动,稳如泰山。学习
再去检查路由器,狂按重启键,发现网络一切正常,网页秒开,惟独进度条上的99%永恒不变。spa
即便你重启电脑,从新打开下载软件,从新开始那99%的下载任务,它依旧仍是99%,不增不减。操作系统
你不由开始疑惑:为何进度条总要卡在99%?为何最后1%永远加载不动? 设计
今天,要为你们破解这一千古谜题,揭开背后不可告人的真相。3d
1896年,波兰经济学家Karol Adamiecki制做了一种名叫时间表的图,提出了早期的进度条概念,可是当时没有具体的应用。游戏
等到1979年,这哥们Mitchell Model在他的博士论文中提出了进度条。
正由于进度条能用最简单的图案和数字,表达电脑复杂的计算过程的特性,因而渐渐在各大操做系统流行起来,成为了电脑的经典标志之一。
但问题来了,人不是电脑更不是神,再牛X的程序员也没法预测电脑何时完成工做。
因此程序员开发出来的进度条,根本不能精准地反映出电脑状况,所谓的50%、80%、90%,仅是大概的数字,预测而已。
能够说你看到的进度条,和实际的进度是两个东西。
其实这种 1% 随时都在发生,但咱们只对最后的 1% 印象深入。
它有时候前面很快,后面很慢。
它也可能一直不快不慢,由于它整条都是假的。
虽然卡在 99% 的等待并不让人愉快,但也不得不认可,没有 0% 到 99%,咱们的情绪会更焦躁,由于不知道尽头在哪里。
这就是进度条的厉害之处 —— 让你心甘情愿地等待。
产品经理的恶意
================
1985 年,卡内基梅隆大学人机交互研究所教授 Brad Myers 仍是一位研究生,当时他就在论文里提出了这个观点。
只要看到进度条,人们就会感受好点,它能让人放松,让人在等待时间去干点别的 —— 去花 5 分钟发个传真,或者干些在 1985 年的办公室会干的事。
虽然进度条由程序员开发,但真正设计进度条的人,是产品经理,包括功能、样式、图案等。
不少产品经理在设计进度条时,会特地要求程序员制做一个“虚假进度条”。
假设如今有2个相同下载速度的进度条,A和B,它们的下载完成时间都是100秒。
A是通过产品经理特殊调教的虚假进度条,它很套路,用了20秒下载到99%,最后1%花了80秒完成。
B是老实进度条,没被调教,10秒加载到10%,100秒100%,一分不差。
此时由于A前十秒加载到99%,而一样时间B却仅有10%,在强烈的对比下,大部分人会认为A比B更快,A比B更好用。
在优胜劣汰的规则下,用户确定更多会选择A这种方式的软件,而产品经理想要留住用户,采用这种虚假进度条那是必须的。
如今明白了吧,有时候不是进度条不许,而是产品经理在搞事。
根据我多年的经验,致使这种状况发生的缘由主要仍是由于资源块校验的机制。
迅雷下载采用P2P协议加速,P2P的优势在于有多个数据来源。
每一个下载过该文件的人,至关于一台服务器,当别人下载时自动在后台上传数据,提供速度。
说白了就是下的人越多,你所下载的资源能被拼凑时间越短。
但缺点一样也有,由于数据来源多,质量良莠不齐外加上传不稳定,容易致使文件乱码出错。
所以迅雷定下了一个规则:在下载到99.9%的时候,会对文件进行块检验,若是某个块出现问题,没法从新下载,则会一直卡在当前进度不动。
下面这个图很好的说明了问题
兄弟你的形状怎么跟咱们不同啊?
若是哪天卡在99.9%不动,别傻楞去充白金会员,大声告诉你:钛金会员都没用!