關於回調(callback)

如果要理解回調,需要在分同步通信、異步通信的基礎上了解

舉個通俗的例子:

你打電話問書店老闆有沒有《JS》這本書,如果是同步通信機制,書店老闆會說,你稍等,”我查一下",然後開始查啊查,等查好了(可能是5秒,也可能是一天)告訴你結果(返回結果)。而異步通信機制,書店老闆直接告訴你我查一下啊,查好了打電話給你,然後直接掛電話了(不返回結果)。然後查好了,他會主動打電話給你。在這裏老闆通過“回電”這種方式來回調。

    同步是阻塞模式,異步是非阻塞模式,在程序設計中,特別是用戶交互功能上採用非阻塞模式的異步可以有效的提高用戶的使用滿意度,比如我們在手機端提交一個訂單,點擊提交後,首先是看到按鈕被禁用,稍後提示成功下單。

    同樣是這個下單的例子,如果讓下面的模式設計可能效果就不一樣了:

  •     整個過程採用同步方式,點擊提交按鈕,程序開始同步訪問網絡,阻塞模式被啓用,程序當前類似死機卡着不動,但看上去還好像正常,只是對任何用戶操作都無法響應。大約4、5秒以後提示成功或失敗。
  •     整個過程僅僅採用異步模式,用戶點擊提交按鈕後程序返回已提交,程序開始後臺處理網絡請求。

    第一種情況肯定是糟糕的用戶體驗,用戶交互被短時間的暫停,用戶點擊按鈕後沒有任何反饋,也無法預測接下來是什麼狀況,給人一種出了問題的印象。

    第二種情況也好不到哪裏去,用戶是立馬獲得了反饋,但是這種反饋過於突然,儘管如此,用戶下意識覺得應該沒問題。但一旦經過一段時間的使用才發覺實際上當初的操作結果其實不是預期的,糟糕的用戶體驗也莫過如此了。其實這個過程就是因爲缺少了及時 “回調”。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章