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