1、概述後端
1. store是做爲一個全部records的緩存,這些records已經被你的應用程序加載。在你的app中若是你的路由或者一個controller請求一條record,若是它在緩存中這個store能夠當即返回它。不然,這個store必須請求adapter去加載它,這一般意味着從服務器上進行網絡訪問去檢索它。而不是等待應用程序去請求一條record,然而 ,你能夠提早把records推送到store的緩存中。緩存
2. 這是有用的,若是你能很好地意識到用戶接下來須要什麼records。當他們點擊一個連接,而不是等待一個網絡請求完成,Ember.js能夠馬上渲染模板。感受是一瞬間的。服務器
3. 推送到records的另外一個用例是若是你的應用程序有一個流鏈接到後端。若是一條record被建立或者修改,你想當即更新UI。網絡
2、Pushing recordsapp
1. 調用store的push()方法來推送一條record到store。this
2. 例如,假設當應用程序第一次啓動時,咱們想提早加載一些數據到store中。咱們可使用route:application來這樣作。route:application是在路由層次中最頂級的路由,而且當app啓動的時候它的model hook會被調用一次。spa
app/models/album.jscode
export default DS.Model.extend({ title: DS.attr(), artist: DS.attr(), songCount: DS.attr() });
app/routes/application.js blog
export default Ember.Route.extend({ model() { this.store.push('album', { id: 1, title: "Fewer Moving Parts", artist: "David Bazan", songCount: 10 }); this.store.push('album', { id: 2, title: "Calgary b/w I Can't Make You Love Me/Nick Of Time", artist: "Bon Iver", songCount: 2 }); } });