您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Ext.js中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'
}
}
});
關于“Ext.js中Proxy有什么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。