同樣的原則也適用于通過(guò)微妙的UI變化來(lái)確認(rèn)用戶的觸摸手勢(shì)。在屏幕上點(diǎn)擊或者滑動(dòng),你觸摸到的UI元素會(huì)發(fā)生改變或者移動(dòng),從而告訴你哪些內(nèi)容正在發(fā)生改變。這種方法提高了用戶對(duì)性能的感知,并且也可以幫你創(chuàng)建更快速的移動(dòng)體驗(yàn)。
進(jìn)一步考慮這一點(diǎn),我們可以實(shí)際上創(chuàng)建一種錯(cuò)覺(jué)–你的操作已經(jīng)生效,但事實(shí)上并沒(méi)有。Instragram的聯(lián)合創(chuàng)始人Mike Krieger稱這一技術(shù)為“樂(lè)觀地執(zhí)行操作”(performing actions optimistically)。比如,當(dāng)你“贊”Instagram上一張照片時(shí),按鈕會(huì)馬上發(fā)生改變以提示你的操作已經(jīng)完成了。
事實(shí)是網(wǎng)絡(luò)正在告訴服務(wù)器你進(jìn)行了什么操作。但是Instagram的用戶界面并沒(méi)有等待服務(wù)器確認(rèn)操作的實(shí)際發(fā)生。用戶樂(lè)觀地假設(shè)操作已經(jīng)生效了。如果后來(lái)出了問(wèn)題,Instagram隨后會(huì)進(jìn)行處理,而不是從一開(kāi)始就告訴用戶有點(diǎn)小麻煩。用戶評(píng)論這一塊兒也一樣。
我們?cè)谧约旱脑苿?dòng)應(yīng)用中也使用了這種方法,甚至Polar更進(jìn)一步使用了該技術(shù),并假設(shè)你創(chuàng)建的任何新投票將會(huì)連接至我們的服務(wù)器。所以當(dāng)你在Polar上創(chuàng)建新投票時(shí),它會(huì)展示在你的信息中。事實(shí)上,是我們創(chuàng)建了一個(gè)臨時(shí)的本地副本,并把它添加在列表的前面。
我們創(chuàng)建的投票臨時(shí)版本具備完善的功能,你可以在此投票并進(jìn)行評(píng)論。為了確保用戶的操作能真正生效,我們堅(jiān)持把它放在本地,在系統(tǒng)提示用戶出錯(cuò)前試著重復(fù)發(fā)送幾次。做一個(gè)功能完善的臨時(shí)版本和使用多個(gè)后臺(tái)處理進(jìn)程來(lái)確保成功加載,聽(tīng)起來(lái)似乎是做了許多額外的工作來(lái)讓用戶“感覺(jué)”app運(yùn)行的很快,但事實(shí)上值得一試,當(dāng)用戶在Polar進(jìn)行投票時(shí),這似乎是一瞬間的事情。在這個(gè)例子中,用戶的“感覺(jué)”打敗了事實(shí)。
文章來(lái)源:cocoachina
原文來(lái)源:Mobile Design Details: Performing Actions Optimistically