原文:True Lies Of Optimistic User Interfaces
? ? ? ? ? https://www.smashingmagazine.com/2016/11/true-lies-of-optimistic-user-interfaces/
作者:Denys Mishunov
譯者:不究
三個(gè)UI去了一個(gè)酒吧,第一個(gè)點(diǎn)了一杯酒戴陡,然后點(diǎn)了更多吃媒,幾個(gè)小時(shí)以后,他醉了聚假,付了款般甲,離開(kāi)了夹抗。第二個(gè)點(diǎn)了一杯酒,馬上付了款兵怯,又點(diǎn)一杯彩匕,又付款,繼續(xù)點(diǎn)媒区,繼續(xù)付驼仪,幾個(gè)小時(shí)以后,他醉了袜漩,離開(kāi)了绪爸。第三個(gè)一進(jìn)這個(gè)酒吧就醉了,然后馬上就離開(kāi)了宙攻。因?yàn)樗涝趺磁莅傻旎酰趺醋霾抛钣行А⒉焕速M(fèi)時(shí)間座掘。你聽(tīng)說(shuō)過(guò)最后一個(gè)UI嗎递惋?它叫“樂(lè)觀UI”柔滔。
最近在一些致力于前端開(kāi)發(fā)和UX的會(huì)議上討論心理性能優(yōu)化的時(shí)候,我非常驚訝地發(fā)現(xiàn)丹墨,大家都不怎么談?wù)摌?lè)觀UI設(shè)計(jì)這個(gè)主題廊遍,實(shí)際上,這個(gè)名詞都未被明確定義贩挣。在這篇文章中,我們會(huì)討論它背后的概念没酣,舉一些例子王财,也會(huì)探討它后面的心理學(xué)。然后我們將探討它的概念裕便、要點(diǎn)绒净,和怎樣運(yùn)用。
但正式開(kāi)始前偿衰,我要說(shuō)挂疆,樂(lè)觀UI并不是一個(gè)單獨(dú)的東西,應(yīng)該說(shuō)它是一個(gè)界面執(zhí)行過(guò)程背后的心理模型下翎,它有自己的由來(lái)和理由缤言。
很久以前
很久以前,當(dāng) tweet 這個(gè)詞還只指鳥(niǎo)叫视事、蘋(píng)果公司還處于破產(chǎn)邊緣胆萧、人們?cè)诿线€會(huì)放傳真號(hào)碼的時(shí)候,網(wǎng)絡(luò)界面是非常禁欲的俐东,大多數(shù)看上去都沒(méi)有一點(diǎn)樂(lè)觀跌穗。
比如,當(dāng)你點(diǎn)擊一個(gè)按鈕虏辫,會(huì)這樣:
1蚌吸、用戶點(diǎn)擊按鈕;
2砌庄、按鈕變成禁用狀態(tài)羹唠;
3、請(qǐng)求被發(fā)到服務(wù)器鹤耍;
4肉迫、服務(wù)器發(fā)回響應(yīng);
5稿黄、頁(yè)面加載相應(yīng)的狀態(tài)喊衫。
這在2016年可能看起來(lái)效率低下,然而令人驚訝的是杆怕,相同的情景仍然在許多網(wǎng)頁(yè)和應(yīng)用中發(fā)生族购,并且仍然是許多產(chǎn)品交互過(guò)程的一部分壳贪,因?yàn)樗深A(yù)測(cè)和易錯(cuò):用戶知道請(qǐng)求已經(jīng)被發(fā)送到服務(wù)器(按鈕的禁用狀態(tài)暗示了這個(gè)),服務(wù)器一旦響應(yīng)寝杖,頁(yè)面會(huì)刷新违施,從而清楚地指示了這個(gè)交互過(guò)程的結(jié)束。
這種交互方案的弊病是顯而易見(jiàn)的:
首先瑟幕,用戶必須等待磕蒲,現(xiàn)在我們知道即使最短的服務(wù)器延遲都會(huì)讓用戶對(duì)整個(gè)品牌(而不僅是這個(gè)特定頁(yè)面)產(chǎn)生消極的評(píng)價(jià);
另外只盹,每次用戶得到的反饋都會(huì)以一種非常打擾的方式出現(xiàn)——比如加載一個(gè)新的頁(yè)面辣往,而不是在當(dāng)前頁(yè)面上刷新。這會(huì)打斷用戶的任務(wù)和心流殖卑。盡管我們不必非要討論多任務(wù)站削,但在這種情況下,任何心理狀態(tài)的轉(zhuǎn)換都是不讓人愉快的孵稽。所以如果用戶不是本來(lái)就要轉(zhuǎn)換心理的話(比如在線付款就是一個(gè)轉(zhuǎn)換心理很自然的例子)许起,轉(zhuǎn)換就是一件非常不友好的事情。
不久以前
之后 Web 2.0 到來(lái)菩鲜,提供了一種新的交互模式园细。核心技術(shù)是 XMLHttpRequest 和 AJAX.
這些新交互模式是用來(lái)補(bǔ)充“spinner”(旋轉(zhuǎn)的圈圈)的,一種最簡(jiǎn)單的進(jìn)度指示器睦袖,唯一作用就是告訴用戶系統(tǒng)很忙∩核啵現(xiàn)在我們不需要在得到服務(wù)器響應(yīng)后重加載整個(gè)頁(yè)面,我們只需要刷新渲染好的頁(yè)面的一部分馅笙。這讓網(wǎng)頁(yè)更加的動(dòng)態(tài)伦乔,讓用戶的整個(gè)操作流更加順滑和愉悅。
現(xiàn)在點(diǎn)擊按鈕是像下面這樣:
1董习、用戶點(diǎn)擊按鈕烈和;
2、按鈕被觸發(fā)為禁用狀態(tài)皿淋,中間會(huì)出現(xiàn)一個(gè)spinner(一個(gè)圈圈轉(zhuǎn)了轉(zhuǎn))招刹,表示系統(tǒng)正忙;
3窝趣、請(qǐng)求被發(fā)送到服務(wù)器疯暑;
4、服務(wù)器發(fā)回響應(yīng)哑舒;
5妇拯、按鈕或頁(yè)面的一部分做相應(yīng)刷新。
這個(gè)新的交互模式解決了上面提到的一個(gè)弊病——頁(yè)面的更新不再是破壞式的,能很好地保留用戶的心流越锈。
這種新的交互模式已經(jīng)廣泛應(yīng)用于各種數(shù)字媒體仗嗦,但它仍有一個(gè)問(wèn)題,用戶必須等待服務(wù)器響應(yīng)甘凭。是的稀拐,我們可以用一些手段讓我們的服務(wù)器響應(yīng)得更快,但無(wú)論我們?cè)趺醇铀俚と酰脩羧匀槐仨毜却虑恕N以僬f(shuō)一次,用戶不喜歡等待躲胳。有研究表明砰逻,78%的消費(fèi)者曾因?yàn)榫W(wǎng)速慢或感覺(jué)不可靠而對(duì)網(wǎng)站產(chǎn)生了負(fù)面情緒。此外泛鸟,根據(jù) Harris Interactive 的調(diào)研,在在線交易遇到問(wèn)題的時(shí)候踊东,23%的用戶承認(rèn)他們?cè){咒過(guò)手機(jī)北滥,11%的人對(duì)手機(jī)尖叫,還有4%的人摔了手機(jī)闸翅,延遲是其中的一個(gè)問(wèn)題再芋。
即使你在用戶等待的時(shí)候給他們顯示了某種進(jìn)度指示器,除非你的指示器非常有創(chuàng)意坚冀,不然遠(yuǎn)遠(yuǎn)不夠济赎。在大多數(shù)情況下,用戶已經(jīng)習(xí)慣了旋轉(zhuǎn)的圈圈表示系統(tǒng)很慢记某,但是圈圈暗示了一種純消極等待——這個(gè)用戶沒(méi)有任何其他的選擇司训,只能等服務(wù)器響應(yīng),或者干脆點(diǎn)關(guān)閉液南。
所以現(xiàn)在讓我們前進(jìn)一步壳猜,來(lái)看看樂(lè)觀UI的概念吧!
樂(lè)觀UI
如前所說(shuō)樂(lè)觀UI只是一種處理人機(jī)交互的方式滑凉。為了理解背后的理念统扳,還是拿用戶點(diǎn)擊按鈕的例子來(lái)說(shuō)明——但是原則是通用的,可以用在任何你想要它變得樂(lè)觀的交互過(guò)程中畅姊。
樂(lè)觀咒钟,對(duì)未來(lái)充滿希望和信心∪粑矗——牛津英語(yǔ)詞典朱嘴。
讓我們從“對(duì)未來(lái)充滿信心”這部分說(shuō)起。
你認(rèn)為你的服務(wù)器返回錯(cuò)誤的概率是多少陨瘩?例如腕够,當(dāng)用戶點(diǎn)擊按鈕時(shí)你的 API 會(huì)經(jīng)常出錯(cuò)嗎级乍?或者,當(dāng)他們點(diǎn)擊鏈接時(shí)帚湘?坦白說(shuō)玫荣,我認(rèn)為錯(cuò)誤率很低。當(dāng)然大诸,數(shù)據(jù)會(huì)隨著 API捅厂、服務(wù)器負(fù)載、錯(cuò)誤處理級(jí)別资柔,以及其他一些前端工程師和 UX 專家都不愿意卷入的因素不同而不同焙贷。但只要 API 是穩(wěn)定的可預(yù)測(cè)的,前端正確地處理了動(dòng)作贿堰,反饋給用戶“出錯(cuò)了”的概率就應(yīng)該很低辙芍,我會(huì)說(shuō)他們不應(yīng)該超過(guò)1%到3%。這意味著在97%到99%的情況下羹与,用戶點(diǎn)擊一個(gè)按鈕后故硅,服務(wù)器返回的應(yīng)該是成功,而不是失敗纵搁。
想想吧,如果我們對(duì)服務(wù)器返回成功響應(yīng)有97%到99%的確定腾誉,那我們就應(yīng)該對(duì)未來(lái)充滿信心徘层,嗯,好吧利职,至少應(yīng)該比對(duì)薛定諤的貓更確定趣效。
我們可以寫(xiě)一個(gè)嶄新的故事:
1、用戶點(diǎn)擊按鈕眼耀;
2英支、按鈕馬上變?yōu)槌晒顟B(tài)。
就這么簡(jiǎn)單哮伟!至少?gòu)挠脩舻慕嵌瓤礇](méi)有更多了干花,沒(méi)有等待,不用盯著一個(gè)禁用的按鈕楞黄,或者另一個(gè)討厭的圈圈池凄,交互是無(wú)縫的,不會(huì)有任何粗暴的提示鬼廓。
從開(kāi)發(fā)者的角度是這樣的:
1肿仑、用戶點(diǎn)擊按鈕;
2、按鈕馬上變?yōu)槌晒顟B(tài)尤慰;
3馏锡、請(qǐng)求被發(fā)送到服務(wù)器。
4伟端、服務(wù)器返回響應(yīng)杯道;
5、我們知道在97%到99%的情況下這個(gè)響應(yīng)肯定是成功责蝠,所以我們不需要麻煩用戶党巾;
6、只有在服務(wù)器返回失敗的情況下霜医,界面才會(huì)說(shuō)明齿拂,先別擔(dān)心這個(gè),我們后面會(huì)說(shuō)的肴敛。
讓我們看一些例子吧署海!你可能很熟悉喜歡(like)按鈕,就像 Facebook 和 Twitter 上的那種医男。我們先來(lái)看看 Twitter 的叹侄。
用戶點(diǎn)擊紅心后,紅心馬上變?yōu)槌晒顟B(tài)昨登。
讓我們打開(kāi)瀏覽器開(kāi)發(fā)者工具的“網(wǎng)絡(luò)”,來(lái)看看發(fā)生了什么贯底。
向服務(wù)器發(fā)出的請(qǐng)求還在進(jìn)行中丰辣,紅心右邊的數(shù)字也沒(méi)有更新,但是隨著紅心變色禽捆,用戶很明確地知道:成功了——在得到服務(wù)器響應(yīng)以前笙什。
服務(wù)器傳回成功響應(yīng)之后,紅心右邊的數(shù)字更新了胚想,但是這個(gè)變化幅度明顯比紅心變色這種形式要小琐凭。這讓用戶的體驗(yàn)非常的順滑流暢,不被打擾浊服,沒(méi)有任何等的感覺(jué)统屈。
另一個(gè)例子是 Facebook 的,情景是相似的牙躺,除了 Facebook 不僅立即變換了顏色愁憔,而且更新了數(shù)字。
需要指出的是孽拷,如果我們?nèi)タ捶?wù)器響應(yīng)時(shí)間會(huì)發(fā)現(xiàn)超過(guò)了1秒吨掌,考慮到 RAIL 模型推薦的一次簡(jiǎn)單交互最佳服務(wù)器響應(yīng)時(shí)間——100毫秒,1秒顯得太長(zhǎng)了,但是膜宋,因?yàn)槲覀冇昧藰?lè)觀UI窿侈,所以用戶根本沒(méi)感覺(jué)到慢。好極了秋茫,這就是另一個(gè)心理性能優(yōu)化的例子史简。
但是讓我們面對(duì)現(xiàn)實(shí),仍然有1%到3%的幾率学辱,服務(wù)器會(huì)返回一個(gè)錯(cuò)誤乘瓤,或者,用戶離線了策泣,或者衙傀,更可能服務(wù)器返回了一個(gè)成功響應(yīng),但是響應(yīng)中包含著需要客戶端處理的進(jìn)一步信息萨咕,這種情況下统抬,用戶不會(huì)得到一個(gè)失敗提示,但是也不能說(shuō)這就是成功危队。為了處理這些情況聪建,我們需要首先知道樂(lè)觀UI是為什么和怎么樣在心理上作用于用戶的。
樂(lè)觀UI背后的心理學(xué)
至今我還沒(méi)有聽(tīng)到過(guò)任何主流社交網(wǎng)絡(luò)上關(guān)于樂(lè)觀UI的抱怨茫陆,所以金麸,樂(lè)觀UI能起作用。但是為什么它們能起作用簿盅?簡(jiǎn)單地來(lái)說(shuō)挥下,是因?yàn)槿藗冇憛挼却昧私按祝憧梢蕴^(guò)這節(jié)剩下的部分了棚瘟。
但如果你愿意繼續(xù)讀下去,你可能會(huì)對(duì)原因感興趣喜最。所以讓我們探索一下這背后的心理學(xué)偎蘸。
樂(lè)觀UI有兩個(gè)值得心理學(xué)分析的組成部分:
1、對(duì)用戶行為的快速響應(yīng)瞬内;
2迷雪、對(duì)服務(wù)器、網(wǎng)絡(luò)或其他潛在失敗的處理虫蝶。
對(duì)用戶行為的快速響應(yīng)
當(dāng)我們談?wù)摌?lè)觀UI時(shí)振乏,我們談?wù)摰氖侨藱C(jī)交互的最佳響應(yīng)時(shí)間。早在1968年秉扑,Robert B. Miller 就發(fā)表了一篇影響深遠(yuǎn)的文章——《論人機(jī)交互中的響應(yīng)時(shí)間》慧邮,他定義了一個(gè)用戶可能從計(jì)算機(jī)得到的多達(dá)17種不同類型的響應(yīng)调限。其中有一種叫做“對(duì)控制激活的響應(yīng)(response to control activation)”,指的是用戶按下一個(gè)鍵到得到視覺(jué)反饋之間的延遲误澳,就算在1968年也不應(yīng)超過(guò)0.1到0.2秒耻矮。是的,RAIL模型不是第一個(gè)這么提的忆谓,這個(gè)建議早在五十年前就出現(xiàn)了裆装。Robert 寫(xiě)道,這么短的延遲對(duì)于一些熟練用戶來(lái)說(shuō)都還是顯得太長(zhǎng)了倡缠,理想情況下哨免,用戶得到反饋不應(yīng)超過(guò)100毫秒。這是考慮到人類可以執(zhí)行的最快無(wú)意識(shí)動(dòng)作之一——眨眼的時(shí)間昙沦,100毫秒間隔通常被感知為即時(shí)的琢唾。倫敦大學(xué)學(xué)院神經(jīng)病學(xué)研究所的 Davina Bristow 說(shuō):“大多數(shù)人每分鐘眨眼15次,眨眼平均持續(xù)100到150毫秒盾饮〔商遥”他補(bǔ)充道:“這意味著我們每年至少要花9天時(shí)間眨眼∏鹚穑”
因?yàn)樗囊曈X(jué)上立即反饋的特性(甚至在實(shí)際請(qǐng)求完成之前)普办,樂(lè)觀UI是早期心理性能優(yōu)化的手段之一。但我們真的不必驚訝于人們喜歡在一次眨眼之間得到反饋這個(gè)事實(shí)徘钥,而且這也不難做到衔蹲。早在之前,我們就在用戶點(diǎn)擊之后把按鈕立即變?yōu)榻脿顟B(tài)來(lái)告訴用戶他點(diǎn)擊了呈础。但是踪危,禁用狀態(tài)僅僅表示一種消極等待,用戶不能做任何事情猪落,也無(wú)法控制進(jìn)程,這會(huì)讓用戶非常沮喪畴博。這就是為什么我們?cè)跇?lè)觀UI設(shè)計(jì)中完全跳過(guò)禁用狀態(tài)笨忌,我們只傳達(dá)積極結(jié)果,而不是讓用戶等待俱病。
處理潛在失敗
讓我們進(jìn)入第二個(gè)有趣的心理學(xué)部分官疲,處理潛在失敗。有大量的信息和文章指點(diǎn)我們?nèi)绾我宰詈玫姆绞教幚鞺I錯(cuò)誤亮隙,但在我們講具體實(shí)現(xiàn)方法之前途凫,最重要的并不是如何處理錯(cuò)誤,而是溢吻,我們什么時(shí)候處理维费。
人類自然地把他們的活動(dòng)組織成塊果元,以目的或子目的的完結(jié)為塊的結(jié)束。有時(shí)候我們把這些塊稱作“思路(train of thought)”犀盟、“思想流(flow of thought)”或簡(jiǎn)單地稱作“心流(flow)”而晒。心流狀態(tài)以巔峰快感(peak enjoyment)、精力集中和創(chuàng)造力集中為特點(diǎn)阅畴。用戶在心流狀態(tài)下完全沉浸于活動(dòng)中倡怎。
在網(wǎng)上纽哥,塊與塊的間隔時(shí)間要短得多钠乏。讓我們回顧一下 Robert 的工作,響應(yīng)類型包括:
1昵仅、對(duì)列出信息的簡(jiǎn)單查詢的響應(yīng)缓熟;
2、對(duì)圖形形式的復(fù)雜查詢的響應(yīng)摔笤;
3够滑、對(duì)“系統(tǒng),你明白我嗎吕世?”的響應(yīng)彰触。
他認(rèn)為不管是哪種查詢,用戶得到相應(yīng)結(jié)果的用時(shí)都不應(yīng)該超過(guò)2秒命辖。這個(gè)間隔時(shí)間也取決于一個(gè)人的工作記憶(指一個(gè)人可以保持一定量的信息在其腦海中况毅,更重要的是,能夠運(yùn)用它們的時(shí)間跨度)尔艇。對(duì)我們開(kāi)發(fā)人員和UX專家來(lái)說(shuō)尔许,這意味著,與元素交互的2秒內(nèi)终娃,用戶處于心流中味廊,并且專注于他們期望獲得的回應(yīng)。如果服務(wù)器在此期間返回了錯(cuò)誤棠耕,用戶會(huì)保持在與界面的對(duì)話中余佛。有點(diǎn)像兩個(gè)人對(duì)話,一個(gè)人說(shuō)了點(diǎn)什么窍荧,然后另一個(gè)人溫和地表示不同意辉巡。想象一下,如果另一個(gè)人點(diǎn)了很長(zhǎng)一段時(shí)間的頭(就像我們?cè)赨I中提供的成功狀態(tài))蕊退,但是最后突然說(shuō)“不”郊楣。很奇怪憔恳,對(duì)吧?所以一個(gè)樂(lè)觀UI設(shè)計(jì)痢甘,必須要在2秒心流內(nèi)向用戶傳達(dá)失敗喇嘱。
終于,有了如何在樂(lè)觀UI設(shè)計(jì)中處理失敗的心理學(xué)塞栅,讓我們來(lái)看看那些1%到3%的失敗請(qǐng)求吧者铜。
樂(lè)觀UI設(shè)計(jì)的悲觀面
目前我聽(tīng)到的最常見(jiàn)的說(shuō)法是,樂(lè)觀UI是一種黑色模式——欺騙放椰,如果你要這么說(shuō)的話作烟。采用這種設(shè)計(jì),我們對(duì)用戶的交互結(jié)果撒了謊砾医。任何法院可能都會(huì)這么判呢拿撩。不過(guò),我把這種技術(shù)視為一種預(yù)測(cè)或希望如蚜。還記得關(guān)于樂(lè)觀的定義嗎压恒?現(xiàn)在我們來(lái)到了“希望”的部分〈戆睿“說(shuō)謊”和“預(yù)測(cè)”之間的區(qū)別探赫,在于如何處理這些1%到3%的失敗請(qǐng)求,讓我們來(lái)看看 Twitter 的樂(lè)觀的喜歡按鈕在離線狀態(tài)下的表現(xiàn)撬呢。
首先伦吠,根據(jù)樂(lè)觀UI設(shè)計(jì)模式,按鈕在被點(diǎn)擊后立即切換到成功狀態(tài)魂拦,完全與用戶在線時(shí)的行為一樣毛仪。
但由于用戶離線了,請(qǐng)求失敗芯勘。
因此錯(cuò)誤盡可能快地在心流時(shí)間內(nèi)傳遞給用戶箱靴。通常是2秒內(nèi)。Twitter 以最可能簡(jiǎn)單的形式做——直接恢復(fù)按鈕的狀態(tài)荷愕。
這里有些好心讀者可能會(huì)說(shuō)衡怀,這種錯(cuò)誤處理還可以更進(jìn)一步,告訴用戶請(qǐng)求不能被發(fā)送路翻,或者發(fā)生了錯(cuò)誤。這可以讓系統(tǒng)盡可能透明茄靠。但是這會(huì)產(chǎn)生一個(gè)茂契,或者說(shuō)一系列的問(wèn)題:
突然出現(xiàn)在屏幕上的任何類型的通知都會(huì)切換用戶的上下文,提示他們分析故障背后的原因慨绳,而這可能是錯(cuò)誤消息中顯示的原因掉冶;
像任何類型的錯(cuò)誤信息或通知一樣真竖,應(yīng)該在新內(nèi)容中提供可操作的信息來(lái)引導(dǎo)用戶;
這個(gè)可操作的信息將指向另一個(gè)內(nèi)容厌小。
好了恢共,現(xiàn)在我們都同意這變得有點(diǎn)復(fù)雜了。雖然這種錯(cuò)誤處理方法對(duì)于像網(wǎng)站上的大型表單來(lái)說(shuō)是合理的璧亚,但是對(duì)于像點(diǎn)擊一個(gè)喜歡按鈕這樣的簡(jiǎn)單操作來(lái)說(shuō)讨韭,無(wú)論考慮到開(kāi)發(fā)還是用戶的工作記憶,都有點(diǎn)過(guò)度了癣蟋。
我們對(duì)于樂(lè)觀UI中出現(xiàn)的錯(cuò)誤應(yīng)該要保持開(kāi)放態(tài)度透硝,我們應(yīng)盡可能快地通知用戶,讓它不成為一個(gè)謊言疯搅。但要根據(jù)內(nèi)容的輕重來(lái)做濒生。對(duì)一個(gè)失敗的喜歡,輕輕地把按鈕變回以前的狀態(tài)就足夠了幔欧,除非這個(gè)喜歡對(duì)用戶來(lái)說(shuō)特別重要——而那時(shí)罪治,點(diǎn)喜歡最好總是有效。
極端悲觀主義
還有一個(gè)問(wèn)題礁蔗,如果用戶在看到成功反饋之后觉义,服務(wù)器返回響應(yīng)之前,關(guān)閉了瀏覽器選項(xiàng)卡瘦麸,會(huì)發(fā)生什么谁撼?最不愉快的情況是,在用戶的請(qǐng)求被發(fā)送到服務(wù)器之前就關(guān)閉了選項(xiàng)卡滋饲。但除非用戶非常靈活厉碟,或有減慢時(shí)間的能力,否則這幾乎是不可能的屠缭。
如果一個(gè)樂(lè)觀UI被正確地實(shí)現(xiàn)了箍鼓,并且只適用于那些服務(wù)器響應(yīng)時(shí)間少于2秒的元素,這個(gè)用戶就不得不在2秒內(nèi)關(guān)閉選項(xiàng)卡呵曹。2秒對(duì)一次按鍵來(lái)說(shuō)可能不是特別困難款咖,但是就像我們說(shuō)過(guò)的,有97%到99%的用戶請(qǐng)求都是成功的奄喂,不管選項(xiàng)卡是開(kāi)著還是關(guān)著铐殃,只是回應(yīng)沒(méi)有被傳回到客戶端而已。
所以這個(gè)問(wèn)題跨新「焕埃可能只出現(xiàn)在那些1%到3%的用戶身上,但是又有多少人會(huì)急急忙忙地在2秒內(nèi)關(guān)閉一個(gè)選項(xiàng)卡呢域帐?除非他們是在一個(gè)關(guān)閉選項(xiàng)卡競(jìng)速比賽上赘被。我不認(rèn)為這個(gè)數(shù)量會(huì)很多是整。但是如果你認(rèn)為這會(huì)影響你的特殊項(xiàng)目或者造成任何負(fù)面后果,那么可以用工具做一些用戶行為分析民假,如果出現(xiàn)這種情況的概率足夠高浮入,那就把樂(lè)觀交互限制在那些非關(guān)鍵性元素上。
我故意沒(méi)有提到請(qǐng)求被人為延遲的例子羊异。這些不是通常的樂(lè)觀UI設(shè)計(jì)討論的范疇事秀。此外,我們已經(jīng)花了足夠多的時(shí)間在悲觀面了球化,最后讓我們來(lái)總結(jié)一下實(shí)現(xiàn)一個(gè)樂(lè)觀UI的要點(diǎn)秽晚。
經(jīng)驗(yàn)法則
我真誠(chéng)希望本文幫助你了解樂(lè)觀UI設(shè)計(jì)背后的一些主要概念。也許你有興趣在你的下一個(gè)項(xiàng)目中嘗試這種方法筒愚。如果是這樣赴蝇,在開(kāi)始之前,請(qǐng)注意以下幾點(diǎn):
我們迄今為止討論的所有事項(xiàng)的先決條件——確保你所依賴的 API 是穩(wěn)定的巢掺,并返回可預(yù)測(cè)的結(jié)果句伶。說(shuō)得夠多了。
在將請(qǐng)求發(fā)送到服務(wù)器之前陆淀,接口應(yīng)捕獲潛在的錯(cuò)誤和問(wèn)題考余。更好的是,完全消除可能導(dǎo)致 API 錯(cuò)誤的任何事情轧苫。UI元素越簡(jiǎn)單楚堤,運(yùn)用樂(lè)觀UI就越簡(jiǎn)單。
將樂(lè)觀模式應(yīng)用于簡(jiǎn)單的二元元素含懊,只有成功或失敗響應(yīng)的那種身冬。例如,如果點(diǎn)擊按鈕后岔乔,服務(wù)器會(huì)響應(yīng)“是”酥筝,“否”或“可能”(各種不同程度的成功),則這樣的按鈕最好不要用樂(lè)觀模式雏门。
了解你的 API 的響應(yīng)時(shí)間嘿歌。這是至關(guān)重要的。如果你知道特定請(qǐng)求的響應(yīng)時(shí)間從來(lái)不會(huì)低于2秒茁影,那么最好先對(duì)你的 API 進(jìn)行一些優(yōu)化宙帝。如前所述,樂(lè)觀UI用于服務(wù)器響應(yīng)時(shí)間小于2秒時(shí)最好募闲。超過(guò)這個(gè)范圍可能會(huì)導(dǎo)致意想不到的結(jié)果和用戶的沮喪情緒步脓。這是警告哦。
樂(lè)觀UI不僅僅用于點(diǎn)擊按鈕。該方法可以應(yīng)用于頁(yè)面生命周期中的不同交互和事件沪编,包括頁(yè)面的加載。例如年扩,漸進(jìn)加載頁(yè)面(skeleton screen)遵循相同的理念——你預(yù)測(cè)服務(wù)器將成功響應(yīng)蚁廓,所以預(yù)先給圖片、文本段等留好占位厨幻,以盡快向用戶顯示頁(yè)面相嵌。
正如我們所看到的,樂(lè)觀UI設(shè)計(jì)在網(wǎng)絡(luò)上并不是一個(gè)新東西况脆,也不是一種特別先進(jìn)的技術(shù)饭宾,它只是另一種方法,另一種心理模型格了,以幫助你管理產(chǎn)品的感知性能看铆。基于人機(jī)交互的心理知識(shí)盛末,聰明地運(yùn)用樂(lè)觀UI設(shè)計(jì)方法弹惦,可以幫助你在網(wǎng)絡(luò)上構(gòu)建更好、更無(wú)縫的體驗(yàn)悄但,而且也不費(fèi)什么事棠隐。但是,為了使模式真正有效檐嚣,不讓它變成謊言助泽,我們必須了解樂(lè)觀UI設(shè)計(jì)的背后機(jī)制。