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(). ↩︎服务器

相关文章
相关标签/搜索