日期:2014-05-17  浏览次数:20708 次

sencha 2.0 基于HTML5的sessionstorage的使用

      sencha 2.0 支持html5的sessionstorage ,

      定义sessionstorage:使用起来,就像普通的store一样,先define一个model,并给与id,(这样做是为了下一次读取session时,定义一个model,也使用这个id,就取到这个model的值了),并且feild里面也要定义个id的字段,(这样做,是为了add一个session的值的时候,通过这个id辨认不同的session组)

      然后定义store,使用add方法,如:add({id:'user',name:'chris',password:'123'}); id为这个session组的识别,最后还要sync()或者save()同步这个store;

Ext.define('User', {
	extend: 'Ext.data.Model',
	config: {
		fields: ['id','name','address','kt', 'password'],
		proxy: {
			type: 'sessionstorage',
			id  : 'my-ProxyKey'
		}
	}
});
var session = Ext.create('User', 
	{'id'		: 'user',
	'kt'		: result.kt,
	'password'	: result.password,
	'name'		: result.name,
	'address'	: result.address});
session.save();


     获取sessionstorage:和定义它一样,要定义一个model,store,当然model里的proxy :id 要和定义时的一样

Ext.define('User', {
	extend: 'Ext.data.Model',
	config: {
		fields: ['id','name','address','kt', 'password'],
		proxy: {
			type: 'sessionstorage',
			id  : 'my-ProxyKey'
		}
	}
});
var session = Ext.create('Ext.data.Store',{
	model: 'User',
});
session.load();
console.log(session.getById('user').getData());

console.log出来的是一个对象object。


删除sessionstorage:和定义它一样,定义model,store,使用removeAll()把session清空,或者设置这个id的其他值为空:

Ext.define('User', {
	extend: 'Ext.data.Model',
	config: {
		fields: ['id','name','address','kt', 'password'],
		proxy: {
			type: 'sessionstorage',
			id  : 'my-ProxyKey'
		}
	}
});
var session = Ext.create('Ext.data.Store',{
	model: 'User',
});
session.load();
session.removeAll();
/*var session = Ext.create('User', 
	{'id'		: 'user',
	'kt'		: '',
	'password'	: '',
	'name'		: '',
	'address'	: ''});
session.save();*/