大多數(shù)App都要與服務(wù)器進(jìn)行數(shù)據(jù)的交換,App向服務(wù)器發(fā)出數(shù)據(jù)請(qǐng)求,服務(wù)器接收到請(qǐng)求之后向App傳輸相應(yīng)數(shù)據(jù),App接收成功后顯示數(shù)據(jù)內(nèi)容,沒(méi)有接收成功則反饋數(shù)據(jù)接收失敗。
在這個(gè)數(shù)據(jù)交換過(guò)程中,由于網(wǎng)絡(luò)原因,需要花費(fèi)一定時(shí)間,也就是說(shuō)用戶(hù)要等待加載完成,這個(gè)時(shí)候就要用到loading加載機(jī)制,它告訴用戶(hù),App正在努力為您加載數(shù)據(jù),您稍安勿躁。好的loading設(shè)計(jì)能減弱用戶(hù)的等待焦慮,不合理的loading設(shè)計(jì)就會(huì)讓用戶(hù)罵爹罵娘了。
標(biāo)題欄loading:微信、釘釘
釘釘&微信
微信、釘釘?shù)榷疾捎昧诉@種形式。聊天列表頁(yè)的聊天記錄是儲(chǔ)存在本地的,所以頁(yè)面內(nèi)容不為空。這個(gè)時(shí)候加載無(wú)需獲取用戶(hù)的視覺(jué)焦點(diǎn),只要在標(biāo)題欄展示App正在加載,加載成功則標(biāo)題欄loading消失,若因?yàn)榫W(wǎng)絡(luò)錯(cuò)誤未連接服務(wù)器,則在標(biāo)題欄顯示未連接狀態(tài)。
白屏loading
當(dāng)頁(yè)面內(nèi)容比較單一,需要一次性加載完成才顯示,則采用這種白屏加載樣式。這種加載方式用戶(hù)在完全加載完成之前是看不到任何內(nèi)容的,所以一旦超過(guò)時(shí)間太久一定要提示用戶(hù)什么原因加載失敗,而不是一直在那轉(zhuǎn)啊轉(zhuǎn)。同時(shí)將加載圖標(biāo)做得更有趣些,也會(huì)減輕用戶(hù)等待時(shí)的焦慮(上面右圖就比左圖更讓用戶(hù)感覺(jué)良好)。
進(jìn)度條
Safari&微信
進(jìn)度條的加載樣式,多見(jiàn)于瀏覽器,包括PC端和移動(dòng)端的瀏覽器。一些App頁(yè)面會(huì)用H5的形式去做,這種頁(yè)面多數(shù)也都會(huì)采用進(jìn)度條的樣式來(lái)顯示loading過(guò)程。
toast
當(dāng)用戶(hù)執(zhí)行了某個(gè)操作時(shí),為了防止用戶(hù)繼續(xù)操作導(dǎo)致數(shù)據(jù)加載失敗,則用Toast的樣式來(lái)提示正在加載,同時(shí)限制用戶(hù)繼續(xù)操作。這種情況用戶(hù)一般只能執(zhí)行返回到上一級(jí)頁(yè)面的操作,其他操作都被禁用。
為了防止數(shù)據(jù)一直加載不出來(lái),可以在Toast上加個(gè)取消按鈕,讓用戶(hù)主動(dòng)停止加載狀態(tài),由于加載數(shù)據(jù)失敗的情況極少出現(xiàn),所以在Toast上加取消按鈕的App并不多。
下拉刷新
下拉刷新廣泛被運(yùn)用于大多數(shù)App,這種加載機(jī)制,保證了用戶(hù)能看到本地緩存數(shù)據(jù)的前提下,還能告知用戶(hù)頁(yè)面正在刷新,同時(shí),用戶(hù)還可以通過(guò)下拉的手勢(shì)操作來(lái)自己選擇重新加載數(shù)據(jù),一定程度上滿(mǎn)足了強(qiáng)迫癥患者。
預(yù)設(shè)圖/占位符
當(dāng)頁(yè)面的框架固定時(shí),只需要加載框架內(nèi)數(shù)據(jù)時(shí),采用這種刷新樣式,即先加載框架,再加載框架內(nèi)的數(shù)據(jù)。為了反之框架內(nèi)的內(nèi)容為空,會(huì)用占位符或者預(yù)設(shè)圖片來(lái)填充。
上面簡(jiǎn)單將六種常見(jiàn)的loading加載樣式介紹了一下,樣式雖然有六種,但是其實(shí)只有兩種加載原理:一種是整體加載頁(yè)面數(shù)據(jù),加載完成后一次顯示;第二種是先加載部分內(nèi)容,再加載剩余內(nèi)容(先加載文字再加載圖片;先加載框架再加載框架內(nèi)的數(shù)據(jù))。
我常說(shuō)的一句話(huà)是設(shè)計(jì)形式永遠(yuǎn)是服務(wù)于產(chǎn)品功能的,而產(chǎn)品功能則是為了滿(mǎn)足用戶(hù)需求。了解了這些loading加載的設(shè)計(jì)形式,進(jìn)一步深度思考一下:這些形式是為了減少用戶(hù)等待數(shù)據(jù)加載時(shí)的焦慮感。那么有沒(méi)有更好的機(jī)制來(lái)降低用戶(hù)等待時(shí)的焦慮感?當(dāng)然有。
第一:優(yōu)化App的加載算法,使得App與服務(wù)器交互數(shù)據(jù)的時(shí)間簡(jiǎn)短。這個(gè)需要開(kāi)發(fā)人員的精益求精了。這個(gè)是從根本上解決了問(wèn)題,因?yàn)橹苯訙p少了加載數(shù)據(jù)的時(shí)間,也就是減少了用戶(hù)需要等待的時(shí)間。
第二:采用預(yù)加載機(jī)制。拿閱讀App打比方,當(dāng)用戶(hù)在看第一頁(yè)的時(shí)候,App在后臺(tái)加載完后面的幾頁(yè),等用戶(hù)翻到第二頁(yè)的時(shí)候就不需要等待加載了,因?yàn)锳pp已經(jīng)幫用戶(hù)提前加載好了。這種加載機(jī)制對(duì)用戶(hù)體驗(yàn)特別好,但是存在一個(gè)問(wèn)題,就是要預(yù)測(cè)用戶(hù)行為,加載其他數(shù)據(jù),這樣會(huì)消耗不少流量,所以建議在WiFi網(wǎng)絡(luò)環(huán)境下采取這種預(yù)加載機(jī)制,而在蜂窩網(wǎng)絡(luò)狀態(tài)下則不采用預(yù)加載機(jī)制。這個(gè)要和開(kāi)發(fā)人員討論溝通,確保預(yù)加載機(jī)制完美運(yùn)行。
第三:異步處理。這一點(diǎn)做得好的App莫過(guò)于Instagram,不知道你有沒(méi)有發(fā)現(xiàn),用Instagram的時(shí)候會(huì)覺(jué)得特別流暢,即使在網(wǎng)絡(luò)不好的情況下。這是為什么?因?yàn)樵诰W(wǎng)絡(luò)不好的情況下,你給好友點(diǎn)了贊,Instagram并不會(huì)提示你網(wǎng)絡(luò)不好,操作失敗,而是提示你點(diǎn)贊成功了,其實(shí)將它只是將你點(diǎn)贊的操作記錄了下來(lái),等網(wǎng)絡(luò)一好就將點(diǎn)贊的行為上傳到服務(wù)器,從而完成點(diǎn)贊行為。這就是減少用戶(hù)的操作負(fù)擔(dān),讓產(chǎn)品自己去解決問(wèn)題,而不是把問(wèn)題拋給用戶(hù)。
請(qǐng)記住,目前App常見(jiàn)的loading加載樣式就這六種,當(dāng)然還有其他的加載設(shè)計(jì)樣式,但是這有什么關(guān)系?你已經(jīng)掌握了產(chǎn)品加載的原理,真正理解了加載機(jī)制,這樣你才可以不變應(yīng)萬(wàn)變。