APP網(wǎng)絡(luò)請(qǐng)求超時(shí)反饋設(shè)計(jì)與思考

最近我負(fù)責(zé)了一個(gè)網(wǎng)絡(luò)請(qǐng)求超時(shí)的反饋設(shè)計(jì),借此機(jī)會(huì)我也順便通過(guò)此文記錄了一下整個(gè)思考過(guò)程,整理一下自己的思路。

當(dāng)我們?cè)谑褂肁PP的時(shí)候,偶爾會(huì)碰到網(wǎng)絡(luò)狀態(tài)不好的情況。那么對(duì)于網(wǎng)絡(luò)狀態(tài)不好的情況有哪些分類呢?和開(kāi)發(fā)大致的討論了一下主要有下面幾種:

1、用戶所處環(huán)境網(wǎng)絡(luò)信號(hào)不好(用戶向服務(wù)器請(qǐng)求超時(shí))

2、服務(wù)器沒(méi)有正常接收請(qǐng)求或沒(méi)有回復(fù)

3、手機(jī)停機(jī)

4、手機(jī)沒(méi)開(kāi)wifi或則流量等

這幾種狀態(tài),在沒(méi)有網(wǎng)絡(luò)時(shí),對(duì)于開(kāi)發(fā)而言可能在處理相關(guān)情況的時(shí)候,判定條件會(huì)有所不同,但對(duì)于用戶而言,其實(shí)也就是一種情況——沒(méi)網(wǎng)。

如果恰好用戶正在買東西,都要下單了,結(jié)果網(wǎng)絡(luò)中斷了一會(huì)會(huì)。這時(shí)候一個(gè)良好的反饋設(shè)計(jì)將發(fā)揮良好的作用。比如像沒(méi)怎么考慮這方面設(shè)計(jì)的APP,可能直接反饋一個(gè)空白頁(yè),用戶只能退回到上一步,如圖:

但是如果一個(gè)設(shè)計(jì)良好的APP將已下面的方式展示:


對(duì)比一下,下面一種設(shè)計(jì)可以讓用戶在當(dāng)前頁(yè)面進(jìn)行重試刷新,避免了用戶重復(fù)操作之前的步驟

而且如果再加上一個(gè)好的設(shè)計(jì),可以起到彩蛋的作用,就像挺多APP在設(shè)計(jì)下拉刷新時(shí)的彩蛋,給用戶帶來(lái)一些驚喜。想象一下用戶本可能因?yàn)榫W(wǎng)絡(luò)的問(wèn)題十分郁悶,彈出來(lái)一個(gè)俏皮的頁(yè)面是能夠緩解用戶的不滿的情緒。

所以思考了以上,我設(shè)計(jì)了如下這個(gè)界面(產(chǎn)品是關(guān)于汽車后市場(chǎng)的):


通過(guò)一句詼諧的話,不僅貼合我們產(chǎn)品本身(關(guān)于車的),又能比較好的描述了網(wǎng)絡(luò)不好這個(gè)情況。

之后在與開(kāi)發(fā)PK的時(shí)候,我提到一點(diǎn)能否讓所有的網(wǎng)絡(luò)連接失敗的情況都跳轉(zhuǎn)這個(gè)頁(yè)面,得到的答復(fù)是這樣做容易造成多次請(qǐng)求,導(dǎo)致生成過(guò)多的請(qǐng)求超時(shí)頁(yè)面,引起APP崩潰。更好的解決方式是將每一個(gè)需要請(qǐng)求服務(wù)器獲取數(shù)據(jù)的界面都進(jìn)行修改,單獨(dú)顯示。為了保證開(kāi)發(fā)的進(jìn)度,我暫時(shí)放棄了一部分的分支頁(yè)面的修改,僅讓開(kāi)發(fā)先改主要流程的頁(yè)面。

當(dāng)然做到這一步其實(shí)還是思考的比較簡(jiǎn)單的,上面那種設(shè)計(jì)只是更加適合于要跳轉(zhuǎn)其他頁(yè)面的情況,還有一種是當(dāng)前頁(yè)面請(qǐng)求服務(wù)器,比如下面這種情況:


如果點(diǎn)擊保存,網(wǎng)絡(luò)請(qǐng)求超時(shí),這時(shí)候彈出另一個(gè)頁(yè)面就遮擋住了之前的信息,對(duì)于用戶是一個(gè)不好的體驗(yàn),這種情況下更適合采用上圖返還一個(gè)toast提示,然后用戶可以很快捷高效的進(jìn)行再一次的保存操作。

當(dāng)然這些僅僅是針對(duì)于我們這個(gè)電商產(chǎn)品,不同的產(chǎn)品,面對(duì)的也是不同的情況。

比如對(duì)于新聞?lì)惖?、咨詢類的,這類APP一般都會(huì)有緩存,比如緩存好一個(gè)列表頁(yè),下一次進(jìn)入APP即使沒(méi)有網(wǎng)絡(luò),也不會(huì)碰到什么內(nèi)容都沒(méi)有的情況而是加載之前緩存的列表。以及之前閱讀的文章也會(huì)緩存下來(lái),下次再閱讀不需要再次請(qǐng)求服務(wù)器。再舉一個(gè)例子就是我們大家都很熟悉的微信朋友圈,沒(méi)有網(wǎng)絡(luò)的情況下也是可以查看之前加載過(guò)的內(nèi)容。如果特意去查看一下微信占用的空間,你會(huì)發(fā)現(xiàn)緩存占了很大的一塊,這里面就包括朋友圈內(nèi)曾經(jīng)加載過(guò)的內(nèi)容以及圖片等。這類產(chǎn)品在出現(xiàn)網(wǎng)絡(luò)請(qǐng)求超時(shí)的情況就不需要跳轉(zhuǎn)另一個(gè)頁(yè)面,多此一舉還影響用戶體驗(yàn)。而且說(shuō)白了像跳轉(zhuǎn)另一個(gè)頁(yè)面這種處理方式是一種簡(jiǎn)單粗暴的方法。這里可以順便引用一句話叫l(wèi)ess is more,做的越少動(dòng)靜越小,對(duì)用戶的體驗(yàn)影響越小越好。這樣對(duì)于用戶也是一種心理暗示——這都不是事,不要慌。所以最好的做法是能讓用戶在出現(xiàn)異常情況下可以很輕易的再次重試,使得用戶能夠淡化對(duì)于異常情況的敏感以及反應(yīng)過(guò)激。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,802評(píng)論 25 709
  • API定義規(guī)范 本規(guī)范設(shè)計(jì)基于如下使用場(chǎng)景: 請(qǐng)求頻率不是非常高:如果產(chǎn)品的使用周期內(nèi)請(qǐng)求頻率非常高,建議使用雙通...
    有涯逐無(wú)涯閱讀 2,917評(píng)論 0 6
  • iOS網(wǎng)絡(luò)架構(gòu)討論梳理整理中。。。 其實(shí)如果沒(méi)有APIManager這一層是沒(méi)法使用delegate的,畢竟多個(gè)單...
    yhtang閱讀 5,466評(píng)論 1 23
  • 同樣是使用Java語(yǔ)言,為什么做MobileAPI的開(kāi)發(fā)人員寫不了Android程序,反之亦然。我想大概是各行有各...
    lookid閱讀 925評(píng)論 1 2
  • 我們的夢(mèng)想不大,卻很難實(shí)現(xiàn),面對(duì)人潮,只能拼命的去爭(zhēng)取,那些別人輕而易舉就能夠得到的東西,我們卻需要花費(fèi)幾倍甚至幾...
    清風(fēng)伏筆閱讀 717評(píng)論 0 10

友情鏈接更多精彩內(nèi)容