Ext.js4.2.1 Proxy
一:描述
Proxy被Store用來載入和儲存資料。Proxy的型別主要分為兩大種客戶端代理和服務端代理。
客戶端代理:
1.LocalStorageProxy:在瀏覽器支援的情況下,儲存資料到本地
2.SessionStorageProxy:在瀏覽器支援的情況下,儲存資料到session
3.MemoryProxy:儲存資料到本地記憶體,在頁面重新整理的時候,資料會丟失
服務端代理:
1.Ajax :在同一個域內,傳送請求到服務端。
2.JsonP:在跨域的情況下,傳送請求到服務端
3.Rest :使用RESTful HTTP請求
4.Direct :使用Ext.direct.Manager 傳送請求。
二:Ext.data.proxy.Ajax
AjaxProxy是在應用中使用最廣的一種代理方式,透過ajax請求服務端,載入資料。
如:
Ext.define('User', {
extend: 'Ext.data.Model',
fields: ['id', 'name', 'email']
});
var store = Ext.create('Ext.data.Store', {
model: 'User',
proxy: {
type: 'ajax',
url : 'users.json'
}
});
store.load();
這裡我們載入User資料到Store,我們事先定義了一個Model,期望服務端返回對應欄位的資料。
接下來我們透過proxy的配置,自動生成一個sotre
new Ext.data.proxy.Ajax({
url: 'users.json',
model: 'User',
reader: 'json'
});
1. Readers和Writers
AjaxProxy可以配置一個Reader去解析服務端返回的資訊。如果沒有設定Reader,AjaxProxy
預設使用一個JsonReader.
如:
var proxy = new Ext.data.proxy.Ajax({
model: 'User',
reader: {
type: 'xml',
root: 'users'
}
});
proxy.getReader(); //returns an XmlReader instance based on the config we supplied
2.Url generation
AjaxProxy自動插入排序,過濾,分頁和分組選項到任何請求的url中,他透過以下引數來進行配置:
pageParam : 頁碼(也可以參考startParam和limitParam)
sortParam : 排序
groupParam : 分組
filterParam : 過濾
三:config
1.extraParams : 其它引數
2.limitParams : 預設為limit
3.noCache : 是否快取請求 ,預設為true
4.pageParam : 預設為page
5.reader : Ext.data.reader.Reader
用來解析資料到一個Model或一個Store.
如:
Ext.create('Ext.data.Store', {
model: 'User',
proxy: {
type: 'ajax',
url : 'users.json',
reader: {
type: 'json',
root: 'users'
}
},
});
Json字串為:
{
"success": true,
"users": [
{ "name": "User 1" },
{ "name": "User 2" }
]
}
6.url
7.actionMethods
預設值:create: 'POST', read: 'GET', update: 'POST', destroy: 'POST'
四:Store & AjaxProxy舉例
var store = Ext.create('MyDesktop.ext.TimeoutController', {
fields : ['roleId', 'roleName', 'status'],
proxy : {
type : 'ajax',
actionMethods : {
read : 'POST'
},
pageParam : 'pageNo',
limitParam : 'pageSize',
url : '../role/findFuncRoles.do',
reader : {
type : 'json',
root : 'funcRoles',
totalProperty : 'totalCount'
}
}
});
Proxy被Store用來載入和儲存資料。Proxy的型別主要分為兩大種客戶端代理和服務端代理。
客戶端代理:
1.LocalStorageProxy:在瀏覽器支援的情況下,儲存資料到本地
2.SessionStorageProxy:在瀏覽器支援的情況下,儲存資料到session
3.MemoryProxy:儲存資料到本地記憶體,在頁面重新整理的時候,資料會丟失
服務端代理:
1.Ajax :在同一個域內,傳送請求到服務端。
2.JsonP:在跨域的情況下,傳送請求到服務端
3.Rest :使用RESTful HTTP請求
4.Direct :使用Ext.direct.Manager 傳送請求。
二:Ext.data.proxy.Ajax
AjaxProxy是在應用中使用最廣的一種代理方式,透過ajax請求服務端,載入資料。
如:
Ext.define('User', {
extend: 'Ext.data.Model',
fields: ['id', 'name', 'email']
});
var store = Ext.create('Ext.data.Store', {
model: 'User',
proxy: {
type: 'ajax',
url : 'users.json'
}
});
store.load();
這裡我們載入User資料到Store,我們事先定義了一個Model,期望服務端返回對應欄位的資料。
接下來我們透過proxy的配置,自動生成一個sotre
new Ext.data.proxy.Ajax({
url: 'users.json',
model: 'User',
reader: 'json'
});
1. Readers和Writers
AjaxProxy可以配置一個Reader去解析服務端返回的資訊。如果沒有設定Reader,AjaxProxy
預設使用一個JsonReader.
如:
var proxy = new Ext.data.proxy.Ajax({
model: 'User',
reader: {
type: 'xml',
root: 'users'
}
});
proxy.getReader(); //returns an XmlReader instance based on the config we supplied
2.Url generation
AjaxProxy自動插入排序,過濾,分頁和分組選項到任何請求的url中,他透過以下引數來進行配置:
pageParam : 頁碼(也可以參考startParam和limitParam)
sortParam : 排序
groupParam : 分組
filterParam : 過濾
三:config
1.extraParams : 其它引數
2.limitParams : 預設為limit
3.noCache : 是否快取請求 ,預設為true
4.pageParam : 預設為page
5.reader : Ext.data.reader.Reader
用來解析資料到一個Model或一個Store.
如:
Ext.create('Ext.data.Store', {
model: 'User',
proxy: {
type: 'ajax',
url : 'users.json',
reader: {
type: 'json',
root: 'users'
}
},
});
Json字串為:
{
"success": true,
"users": [
{ "name": "User 1" },
{ "name": "User 2" }
]
}
6.url
7.actionMethods
預設值:create: 'POST', read: 'GET', update: 'POST', destroy: 'POST'
四:Store & AjaxProxy舉例
var store = Ext.create('MyDesktop.ext.TimeoutController', {
fields : ['roleId', 'roleName', 'status'],
proxy : {
type : 'ajax',
actionMethods : {
read : 'POST'
},
pageParam : 'pageNo',
limitParam : 'pageSize',
url : '../role/findFuncRoles.do',
reader : {
type : 'json',
root : 'funcRoles',
totalProperty : 'totalCount'
}
}
});
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28624388/viewspace-2143761/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Proxy
- docker – nginx – proxy_pass + proxy_redirectDockerNginx
- Proxy invocationHandler
- Proxy模式模式
- proxy 收集
- Proxy 攔截
- Proxy介紹
- 代理模式(Proxy)模式
- 2.1.2.3 Proxy PDBs
- 初識Proxy
- JavaScript 之 ProxyJavaScript
- 代理(Proxy)的解析
- Cglib proxy探祕CGLib
- 代理模式(Proxy Pattern)模式
- Proxy使用詳解
- Proxy.revocable() 方法
- 安卓 no_proxy安卓
- zabbix分散式proxy分散式
- Proxy例項set()
- What are the benefits of using an proxy?
- Proxy handler.has() 方法
- Proxy handler.get() 方法
- kube-proxy的功能
- Proxy handler.deleteProperty() 方法delete
- Proxy handler.getOwnPropertyDescriptor() 方法
- Proxy handler.apply() 方法APP
- Proxy handler.setPrototypeOf() 方法
- Proxy handler.defineProperty() 方法
- Proxy handler.getPrototypeOf() 方法
- wget使用proxy的配置wget
- 【譯】Proxy及其優勢
- Ubuntu apt-get proxyUbuntuapt-get
- Proxy handler.set() 方法
- Proxy handler.ownKeys() 方法
- Proxy handler.isExtensible() 方法
- Proxy handler.preventExtensions() 方法
- Proxy handler.construct() 方法Struct
- 3proxy 使用指北
- ES6 proxy,字串,字串