這個(gè)小小的技術(shù)點(diǎn),幫你優(yōu)化用戶體驗(yàn)
編輯導(dǎo)語:互聯(lián)網(wǎng)用戶增長(zhǎng)的逐步放緩,讓用戶增量變得越來越難。面對(duì)瞬息萬變的移動(dòng)互聯(lián)網(wǎng)市場(chǎng),企業(yè)應(yīng)該如何制定用戶運(yùn)營(yíng)策略,從而幫助企業(yè)更好地?fù)P長(zhǎng)避短。本文作者分享了不同接口調(diào)用方式對(duì)產(chǎn)品設(shè)計(jì)和用戶體驗(yàn)的效果影響,我們一起來看看吧。
在產(chǎn)品的開發(fā)過程中,我們都應(yīng)該聽過「接口」這個(gè)詞,如果沒聽過,我建議你先去補(bǔ)下接口的相關(guān)知識(shí)再來看這篇文章,比如什么是接口、什么時(shí)候會(huì)用到接口、以及誰會(huì)用接口。至于怎么用,那是開發(fā)小哥哥的工作,不需要研究太深,也不是本文要討論的重點(diǎn)。
在軟件開發(fā)中,最常見的一個(gè)場(chǎng)景就是前端與后端進(jìn)行接口調(diào)用,今天我們就來說下不同的接口調(diào)用方式對(duì)產(chǎn)品設(shè)計(jì)和用戶體驗(yàn)的效果影響。
一、接口調(diào)用的方式有哪些
首先,我們先來看下接口調(diào)用方式的分類,這里先舉個(gè)栗子。
比如疫情在家辦工,我們和業(yè)務(wù)需要溝通需求。
如果用電話的方式溝通,當(dāng)你問出一個(gè)問題后,需要一直在線等待他給你回應(yīng)才算溝通結(jié)束。
這種就是同步。
如果用微信信息的方式溝通,當(dāng)你問出一個(gè)問題后,不需要在聊天頁(yè)面等他回復(fù),你可以繼續(xù)切換窗口和別人聊天,不管多久,等他回復(fù)你消息后,你都會(huì)即時(shí)收到消息提醒。
這種就是異步。
所以,和溝通相似,接口調(diào)用的方式分為同步調(diào)用和異步調(diào)用。
同步調(diào)用是最常見的接口調(diào)用形式,在同步調(diào)用模式下,接口的調(diào)用方在一定時(shí)間范圍內(nèi)一直等待,直到被調(diào)用方返回執(zhí)行結(jié)果。
異步調(diào)用是接口調(diào)用方給被調(diào)用方發(fā)出指令,但不會(huì)愣在那等待結(jié)果,調(diào)用方會(huì)給被調(diào)用方提供一個(gè)回調(diào)接口,處理完成后,再調(diào)用回調(diào)接口返回結(jié)果。
在這里我們不考慮通信的底層協(xié)議是什么,只單純的考慮場(chǎng)景,電話溝通就是同步,信息溝通就是異步。
所以在接口通信時(shí),不能即時(shí)響應(yīng)的工作就可以考慮采用異步調(diào)用的方式。
二、異步調(diào)用的產(chǎn)品設(shè)計(jì)應(yīng)用
在產(chǎn)品設(shè)計(jì)過程中,我們會(huì)遇到很多需要等待時(shí)間的場(chǎng)景,比如上傳、下載、導(dǎo)出等,這時(shí)如果接口選擇同步調(diào)用,就會(huì)一直停在當(dāng)前頁(yè)面等待接口返回結(jié)果才能進(jìn)行下一步。
在這里用一個(gè)工作中的實(shí)際案例來說明我是如何用異步調(diào)用優(yōu)化用戶體驗(yàn)的。
我之前公司所在的行業(yè)是物聯(lián)網(wǎng),所有的前端操作都是基于業(yè)務(wù)平臺(tái)和硬件通信去完成的,硬件數(shù)據(jù)采集后會(huì)直接存入數(shù)據(jù)庫(kù),供業(yè)務(wù)服務(wù)調(diào)用,同時(shí)也會(huì)向硬件發(fā)送一些控制命令,我這里以控制命令來舉例。
因?yàn)橛布推脚_(tái)的通信依靠移動(dòng)網(wǎng)絡(luò),所以有時(shí)會(huì)產(chǎn)生收發(fā)命令延遲的問題,整個(gè)發(fā)送到接收回復(fù)的一次完整通信時(shí)間有時(shí)會(huì)需要超過5s,如果用戶在網(wǎng)絡(luò)不好的情況下點(diǎn)擊發(fā)送命令,就需要等待很長(zhǎng)的時(shí)間才能收到執(zhí)行成功或者失敗的結(jié)果通知。
考慮到網(wǎng)絡(luò)延遲情況,收發(fā)命令的接口就特別適用異步調(diào)用模式。
首先點(diǎn)擊頁(yè)面上的“發(fā)送命令”,頁(yè)面提示“命令已發(fā)送,請(qǐng)耐心等待”。這時(shí)前端就不需要一直等待后端接口的返回了,用戶可以去做其他操作。
當(dāng)后端接口有執(zhí)行結(jié)果返回時(shí),前端會(huì)實(shí)時(shí)接收到通知,并將結(jié)果推送到頁(yè)面上通知用戶,這樣做既完成了命令的收發(fā)又提高了用戶體驗(yàn)。
三、寫在最后
也許這就是為什么產(chǎn)品要懂點(diǎn)技術(shù),當(dāng)開發(fā)為了省事兒把所有的接口都做成同步調(diào)用,并告訴我遲遲收不到結(jié)果是因?yàn)榫W(wǎng)絡(luò)延遲問題時(shí),我就可以直接反問他,為什么不做成異步呢?
簡(jiǎn)單粗暴,理直氣壯~果真是產(chǎn)品懂技術(shù),誰也擋不住~
但是異步也不建議用到所有地方的,對(duì)于實(shí)時(shí)響應(yīng)高的接口,還是要用同步的。
如果一個(gè)簡(jiǎn)單的實(shí)時(shí)數(shù)據(jù)查詢接口,開發(fā)用了5s,那就趕緊讓他優(yōu)化提升性能吧,沒條件可談。
作者:鄭多多;公眾號(hào):思考的鄭多多(ID:zhengduoduo2022),專注于產(chǎn)品設(shè)計(jì)與個(gè)人成長(zhǎng)。
本文由 @鄭多多 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來自 Unsplash,基于CC0協(xié)議
學(xué)到了,那看來還是異步調(diào)用模式更能能提高用戶體驗(yàn),下次有機(jī)會(huì)和開發(fā)小哥討論一下嘿嘿
這個(gè)得看業(yè)務(wù)場(chǎng)景需求吧
哈哈哈哈昨天看到說產(chǎn)品要會(huì)演講,今天看到說要會(huì)技術(shù),明天還不知道要會(huì)什么