我有一個實作服務器端分頁的 REST API,它回傳以下資料:
{
items: [
{
id: 1,
name: 1
},
{
id: 2,
name: 2
}
],
nextToken: <some-hash-key> // cursor-based
}
如果資源被更新,客戶端應用程式應該如何重繪 串列(客戶端不知道更新,所以這是一個拉模型)?我有一些想法:
- 定期獲取所有資源(例如每 10 秒)
- 維護一個每 N 分鐘輪換一次的會話 ID。創建新會話時,獲取所有資源
這兩種方法基本上是相同的想法。第一種方法成本更高,但允許更多實時更新。第二種方法是基于會話 ID,我認為它更慣用,但沒有實時更新。還有其他方法嗎?
uj5u.com熱心網友回復:
REST API 不是為實時更新而設計的;為此,您需要插座。
uj5u.com熱心網友回復:
實時更新客戶端的每個更新是不可擴展的,因此必須定期更新。持續時間/間隔時間可以根據桌子上的事實來決定。
您可以使用簡單的集成https://socket.io和類似 cron 的架構來定期廣播更新。
uj5u.com熱心網友回復:
版本化您的串列,每 n 秒或幾分鐘發送帶有 GET 請求的 If-None-Match請求標頭。如果未修改,則以 304 回應。如果修改,則使用新資料進行回應。雖然這不會很好地擴展。使用 websockets 并發送更新事件可以更好地擴展。從會話開始,REST 是無狀態的,因此您沒有這些。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/484459.html
標籤:javascript api 休息
