乐趣区

Emberjs-如何与后端服务进行交互StoreAdapterSerializer的作用

Emberjs 如何与后端服务进行交互

@[toc]

一般发送请求流程

首先来看这张图:

可以看到:

  • 在应用中 application 中的 Route 或者 controller 会发送数据请求 ;
  • 请求并没有直接发送到后端服务器 (The Cloud) 中,而是先在 store 的缓存中进行查找;
  • 如果请求的数据在 store 中,则直接返回到请求的地方; 如果 store 中没有要请求的数据,那么将继续向上请求;
  • 也就是到达了 Adapter 这一层,在这里,adapter 会根据用户设置 1 构建出请求的 URL 等数据,并使用 原生或用户复写的方法将请求发送到后端;
  • 在这一步,adapter 会检查发送的数据与后端接受的数据的差异,如果不同,会通过进一步的处理,包含 key 的名称会在 serializer.js 文件中进行处理。

返回数据请求流程

  • 后端返回的数据首先也会经过上面的处理;
  • 其次经过 adapter 返回进 Store;
  • Store 将数据存储起来后返回请求数据的地方。

至此一个请求后端数据的请求的流程就到此结束了。但是如果 Store 中有要请求的数据呢?那就会发生下图的情况:

从缓存读取流程

  • 也就是发送数据请求之后,在 Store 中查询到记录,然后返回 promise;
  • 展示数据。结束。

Written By Frank Wang.


  1. 例如 backend host, URL format(namespace)等以及官方推荐最少要复写的方法:findRecord() ,createRecord(),updateRecord(),deleteRecord(),findAll(),query(). ↩
退出移动版