7.4 Models -- Pushing Records into the Store

一、概述

1. store是作为一个所有records的缓存,这些records已经被你的应用程序加载。在你的app中如果你的路由或者一个controller请求一条record,如果它再缓存个中这个store可以立即返回它。否则,这个store必须请求adapter去加载它,这通常意味着从服务器上进行网络访问去检索它。而不是等待应用程序去请求一个条record,然而 ,你可以提前把records推送到store的缓存中。

2. 这是有用的,如果你能很好地意识到用户接下来需要什么records。当他们点击一个链接,而不是等待一个网络请求完成,Ember.js可以立刻渲染模板。感觉是一瞬间的。

3. 推送到records的另一个用例是如果你的应用程序有一个流连接到后端。如果一条record被创建或者修改,你想立即更新UI。

二、Pushing records

1. 调用store的push()方法来推送一条record到store。

2. 例如,假设当应用程序第一次启动时,我们想提前加载一些数据到store中。我们可以使用route:application来这样做。route:application是在路由层次中最顶级的路由,并且它的model hook会被调用一次当app启动的时候。

app/models/album.js

export default DS.Model.extend({
  title: DS.attr(),
  artist: DS.attr(),
  songCount: DS.attr()
});

app/routes/application.js

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
    });
  }
});
时间: 2024-11-12 00:24:38

7.4 Models -- Pushing Records into the Store的相关文章

7.6 Models -- Finding Records

Ember Data的store为检索一个类型的records提供一个接口. 一.Retrieving a single record(检索单记录) 1. 通过type和ID使用store.findRecord()去检索一条record.这将返回一个promise,它通过请求的record来实现: var post = this.store.findRecord('post', 1); // => GET /posts/1 2. 通过type和ID使用store.peekRecord()去检索一

7.5 Models -- Persisting Records

一.概述 1. 在Ember Data上以每个实例为基础,records被持久化.在DS.Model的任何一个实例上调用save()并且它将会并且它将产生一个网络请求. 2. 下面是一些例子: var post = store.createRecord('post', { title: 'Rails is Omakase', body: 'Lorem ipsum' }); post.save(); // => POST to '/posts' store.findRecord('post', 1

7.9 Models -- Connection to An HTTP Server

一.概述 1. 如果你的Ember应用程序需要从一个HTTP服务器加载JSON数据,在你的服务器返回的任何格式中,配置EmberData的过程将会加载records. 2. store使用一个被称为adapter的对象去了解如何与网络通信.默认的,store将会使用DS.RESTAdapter,它是一个adapter,它通过转换经由XHR的JSON与一个HTTP服务器通信. 3. 这节的内容被分为两块.第一个块涵盖了一个适配器的默认行为,包括请求records将访问那些URLS和期望返回什么格式

Method and apparatus for providing total and partial store ordering for a memory in multi-processor system

An improved memory model and implementation is disclosed. The memory model includes a Total Store Ordering (TSO) and Partial Store Ordering (PSO) memory model to provide a partial order for the memory operations which are issued by multiple processor

7.12 Models -- Frequently Asked Questions

一.Should I use a query or a filter to seach records?我应该使用一个查询或者过滤器来搜索记录吗? 这取决于你想要搜索多少reocrds并且它们是否被加载到store中了. 1. Queries (1) Queries对于搜索数百,书签,或者甚至百万的记录是有用的.你仅仅把搜索选项交给你的服务器,并且它负责把匹配的records列表交还给你.因为来自服务器的响应包含所有匹配的records的ID,这并不重要,如果store没有提前加载它们:它认为它

Ext Store Proxy Ajax

使用Store ajax的方式来获取数据 Ext.onReady(function() { var store = new Ext.data.JsonStore({ // store configs storeId: 'myStore', autoLoad: true, proxy: { type: 'ajax', url: 'getImage.php', reader: { type: 'json', root: 'images', idProperty: 'name', //getData的

Ember.js 入门指南——model简介2

本文接上一篇<Ember.js 入门指南--model简介1>. 2,核心概念 声明:下面简介内摘抄至http://www.emberjs.cn/guides/models/#toc_. 1,store store是应用存放记录的中心仓库.你可以认为store是应用的所有数据的缓存.应用的控制器和路由都可以访问这个共享的store:当它们需要显示或者修改一个记录时,首先就需要访问store. DS.Store的实例会被自动创建,并且该实例被应用中所有的对象所共享. store可以看做是一个缓存

Python之路,Day15 - Django适当进阶篇

Python之路,Day15 - Django适当进阶篇 本节内容 学员管理系统练习 Django ORM操作进阶 用户认证 Django练习小项目:学员管理系统设计开发 带着项目需求学习是最有趣和效率最高的,今天就来基于下面的需求来继续学习Django 项目需求: 1.分讲师\学员\课程顾问角色,2.学员可以属于多个班级,学员成绩按课程分别统计3.每个班级至少包含一个或多个讲师4.一个学员要有状态转化的过程 ,比如未报名前,报名后,毕业老学员5.客户要有咨询纪录, 后续的定期跟踪纪录也要保存6

【MVC 4】6.SportsSore:导航

 作者:[美]Adam Freeman      来源:<精通ASP.NET MVC 4> 前面的文章[MVC 4]5.SportsSore —— 一个真实的应用程序 建立了 SportsStore 应用程序的核心基础框架.本文将利用这一基础框架,将一些关键特性添加到该应用程序上. 1.添加导航控件 如果让客户通过产品分类(Category)对象产品进行导航,SportsStore 应用程序会更加适用.这需要从三个方面着手. * 增强 ProductController 类中的 List 动作