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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Ext.js4.2.1 Ext.ClassJS
- Ext.js4.2.1 Ext.defineJS
- Ext.js4.2.1 事件機制JS事件
- Ext.js4.2.1 Ext.panel.TableJS
- Ext.js4.2.1 Ext.data.RecordJS
- Ext.js4.2.1 Ext.LoaderJS
- Ext.js4.2.1 Ext.ComponentJS
- Ext.js4.2.1 Ext.panel.PanelJS
- Ext.js4.2.1 Ext.container.ContainerJSAI
- Proxy
- docker – nginx – proxy_pass + proxy_redirectDockerNginx
- nginx proxy_pass 和 proxy_redirectNginx
- Proxy模式模式
- MySQL ProxyMySql
- proxy 收集
- 代理模式(Proxy)模式
- JavaScript 之 ProxyJavaScript
- 配置proxy代理
- jQuery.proxy()jQuery
- http proxy原理HTTP
- MySQL Proxy應用入門(1)--安裝MySQL ProxyMySql
- MySQL Proxy應用入門(2)--MySQL Proxy配置選項MySql
- 代理(Proxy)的解析
- Proxy使用詳解
- 4.1.1Proxy元件元件
- MySQL Proxy的用途MySql
- Rpc Call ProxyRPC
- mysql proxy安裝MySql
- could not initialize proxy - no SessionSession
- 代理模式(Proxy Pattern)模式
- zabbix分散式proxy分散式
- 【譯】Proxy及其優勢
- Proxy handler.get() 方法
- Proxy handler.setPrototypeOf() 方法
- Proxy handler.getPrototypeOf() 方法
- Proxy handler.deleteProperty() 方法delete
- Proxy handler.getOwnPropertyDescriptor() 方法
- What are the benefits of using an proxy?