您的位置:首页 > 其它

Sencha-数据-Proxy(代理) (官网文档翻译25)

2012-12-27 09:56 381 查看
代理所使用的存储处​​理模型数据的加载和保存。有两种类型的代理:客户端和服务器。客户端代理的例子包括将数据存储在浏览器的内存和本地存储,使用HTML 5本地存储功能,当记忆体。服务器代理处理的封送处理数据到远程服务器和实例,包括AJAX,JSONP,和休息。

代理可以直接在模型上定义,像这样:

Ext.define('User',{
extend:'Ext.data.Model',
config:{
fields:['id','name','age','gender'],
proxy:{
type:'rest',
url :'/data/users.json',
reader:{
type:'json',
root:'users'}}}});// Uses the User Model's ProxyExt.create('Ext.data.Store',{
model:'User'});

这有助于在两个方面。首先,它很可能是每家商店,使用用户模型,以同样的方式将需要加载的数据,因此,我们避免重复每家店的代理定义。第二,我们现在可以加载和保存模型数据,而无需商店:

// Gives us a reference to the User classvarUser=Ext.ModelMgr.getModel('User');var ed =Ext.create('User',{
name:'Ed Spencer',
age :25});// We can save Ed directly without having to add him to a Store first because we// configured a RestProxy this will automatically send a POST request to the url /users
ed.save({
success:function(ed){
console.log("Saved Ed! His ID is "+ ed.getId());}});// Load User 1 and do something with it (performs a GET request to /users/1)User.load(1,{
success:function(user){
console.log("Loaded user 1: "+ user.get('name'));}});

也有利用的新功能HTML5 - 本地存储SessionStorage的代理。虽然旧的浏览器不支持这些新的HTML5 API,它们是非常有用,所以很多的应用将极大地受益使用它们。

直接使用代理模型的例子
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: