ExtJS2.0의 Store

2770 단어 ExtJs
Store는 데이터 메모리로 이해할 수 있고 클라이언트의 소형 데이터 테이블로 이해할 수 있으며 캐시 등 기능을 제공한다.ExtJS에서 GridPanel, ComboBox, DataView 등 컨트롤러는 일반적으로 Store와 직접 접촉하고 store를 통해 컨트롤러에서 보여야 할 데이터 등을 얻는다.하나의 Store는 여러 개의 Record를 포함하고 Store는 데이터 출처, 데이터 분석기 등 관련 정보를 포함한다. Store는 구체적인 데이터 분석기(DataReader)를 호출하여 지정한 형식이나 형식의 데이터(DataProxy)를 분석하고 기록집의 형식으로 바꾸어 Store에 저장하여 다른 컨트롤러의 데이터 입력으로 한다.
데이터 스토리지는 Ext.data.Store 클래스 정의, 완전한 데이터 저장소는 데이터 원본(DataProxy)과 데이터 해석 방식(DataReader)을 알아야 작동합니다. Ext.data.Store 클래스에서 데이터 원본은proxy 설정 속성 정의, 데이터 해석(읽기)기는reader 설정 속성 정의, 비교적 순서대로 스토어를 만드는 코드는 다음과 같다
var MyRecord = Ext.data.Record.create([
{name: 'title'},
{name: 'username', mapping: 'author'},
{name: 'loginTimes', type: 'int'},
{name: 'lastLoginTime', mapping: 'loginTime', type: 'date'}
]);
var dataProxy=new Ext.data.HttpProxy({url:"link.ejf"});
var theReader=new Ext.data.JsonReader({
totalProperty: "results",
root: "rows",
id: "id"
},MyRecord);
var store=new Ext.data.Store({
proxy:dataProxy,
reader:theReader
});
store.load();
물론 이런 코드가 비교적 많다. 스토어 자체는 스토어를 신속하게 만드는 방식을 제공했다. 예를 들어 위의 예시 코드에서 HttpProxy를 먼저 만들지 않고 스토어를 만들 때 URL 설정 파라미터를 지정하면 HttpProxy로 파라미터를 불러올 수 있다.예를 들어 위의 코드는 다음과 같이 간소화할 수 있다
var MyRecord = Ext.data.Record.create([
{name: 'title'},
{name: 'username', mapping: 'author'},
{name: 'loginTimes', type: 'int'},
{name: 'lastLoginTime', mapping: 'loginTime', type: 'date'}
]);
var theReader=new Ext.data.JsonReader({
totalProperty: "results",
root: "rows",
id: "id"
},MyRecord);
var store=new Ext.data.Store({
url:"link.ejf",
proxy:dataProxy,
reader:theReader
});
store.load();
더 이상 수동으로 HttpProxy를 만들 필요가 없지만 DataReader 등을 만들어야 한다. 복잡하기 때문에 ExtJS는 이런 자주 사용하는 데이터 저장소를 봉인했다. 스토어 클래스를 바탕으로 Simple Store, Simple Store, Grouping Store 등을 제공했고 Simple Store를 직접 사용하면 위의 코드는 아래의 내용으로 간소화할 수 있다
var store=new Ext.data.JSonStore({		
url:"link.ejf?cmd=list",
totalProperty: "results",
root: "rows",
fields:['title', {name: 'username', mapping: 'author'},
{name: 'loginTimes', type: 'int'},
{name: 'lastLoginTime', mapping: 'loginTime', type: 'date'}
]
});
store.load();

좋은 웹페이지 즐겨찾기