big logo
Optimistic Update or Not?
tech

之所以為有這兩個選項在考慮,是因為前端總是會需要等待資料更新,而等待是必要的嗎

樂觀更新是什麼?

樂觀更新的目的是讓前端在更新資料後去同步所有使用到該筆資料的地方不等待後端返回更新有無成功。


那假如失敗呢?那也沒關係,只要去 roll back 成之前的資料就好。


那既然有樂觀更新的存在,是不是就可以大膽的假設我們只要都使用他就不需要讓使用者等了?

Loading Status 的使用情境

這時我們就要尋找我們的 AI 來幫我們解答這個問題,首先 AI 先給出了 Loading Status 的使用情境: 股票、即時運算、金流...等需要大家同步知道最新結果的應用上,這類型的產品要求數據在上面呈現的要及時準確,因為如果不準確會造成判斷錯誤,也就是說不管是無法更新、錯誤資料...等也都是判斷的依據,只要你的畫面上有出現短暫的虛假資料時,就會造成判斷失準


樂觀更新就不太能使用在這類型應用上,因為更新失敗時的 roll back 造成的損失是無法估計的,所以寧願做等待完全正確的回應,也不要為了求快看到虛假的情況。

樂觀更新能夠使用在哪

那樂觀更新能夠使用在哪呢?也就是你認為就算失敗也無傷大雅的應用上。舉例像是社群平台,你不管在按讚、發文、收藏...等行為上失敗,本質上其實並不會造成你多大的損失,加上這些平台在來回的速度上是很快的,所以你只要稍微有點等待的時間其實累加起來會讓使用者體驗不太好。

體悟

我現在是慢慢體悟到一項技術的誕生很多時候不只是為了取代OOO,而可能是多一個選擇,畢竟會有這些技術的誕生肯定都是為了解決特定的某件事。那我要怎麼知道該怎麼選就是在 AI 日漸成熟的現在該做的,畢竟如何做到 AI 肯定比人強大。


所以這兩者也沒有誰好誰不好,只是使用場景的不同,只要清楚目標是什麼,就會比較好去選擇處理方式。


聲明: 以上提到部分也是看 AI 收集的資料學的,我對此沒有特別實務處理經驗。

big logo

2025 Design by JamesPig