Ember.js 如何與後端服務進行交互-Store/Adapter/Serializer的做用

Emberjs 如何與後端服務進行交互

@[toc]git

通常發送請求流程

首先來看這張圖:github

request

能夠看到:後端

  • 在應用中 application 中的 Route 或者 controller 會發送數據請求 ;
  • 請求並無直接發送到後端服務器(The Cloud ) 中,而是先在store 的緩存中進行查找;
  • 若是請求的數據在 store 中,則直接返回到請求的地方;若是 store 中沒有要請求的數據,那麼將繼續向上請求;
  • 也就是到達了 Adapter 這一層,在這裏,adapter 會根據用戶設置 [1] 構建出請求的 URL 等數據,並使用 原生或用戶複寫的方法將請求發送到後端;
  • 在這一步,adapter 會檢查發送的數據與後端接受的數據的差別,若是不一樣,會經過進一步的處理,包含 key 的名稱會在 serializer.js 文件中進行處理。

返回數據請求流程

Diagram showing process for finding an unloaded record after the payload has returned from the server
  • 後端返回的數據首先也會通過上面的處理;
  • 其次通過 adapter 返回進 Store;
  • Store 將數據存儲起來後返回請求數據的地方。

至此一個請求後端數據的請求的流程就到此結束了。可是若是 Store 中有要請求的數據呢?那就會發生下圖的狀況:promise

從緩存讀取流程

request
- 也就是發送數據請求以後,在 `Store`中查詢到記錄,而後返回 promise; - 展現數據。結束。

Written By Frank Wang.緩存


  1. 例如 backend host, URL format ( namespace)等以及官方推薦最少要複寫的方法:findRecord() ,createRecord(),updateRecord(),deleteRecord(),findAll(),query(). ↩︎服務器

相關文章
相關標籤/搜索