博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ext4.0 代理 的使用
阅读量:5234 次
发布时间:2019-06-14

本文共 3071 字,大约阅读时间需要 10 分钟。

/**

 * Extjs4.0数据代理详解 数据代理Proxy是数据读写的主要途径,通过代理操作数据进行CRUD
 * 每一步操作都会得到唯一的Ext.data.Operation实例,他包含所有的请求参数 
 * 1.数据代理proxy目录结构:
 * Ext.data.proxy.Proxy 代理类的根类(他分客户端代理和服务器端代理)
 *     Ext.data.proxy.Client 客户端代理
 *              Ext.data.proxy.Memory 普通的内存代理 
 *              Ext.data.proxy.WebStorage 浏览器客户端存储代理
 *     Ext.data.proxy.SessionStorage 浏览器级别代理 
 *     Ext.data.proxy.LocalStorage 本地化的级别代理( 不能跨浏览器)
 *    Ext.data.proxy.Server 服务器端代理 
 *             Ext.data.proxy.Ajax 异步加载方式
 *             Ext.data.proxy.Rest 一直特殊的ajax 
 *             Ext.data.proxy.JsonP 跨域交互代理 :跨域交互严重的安全隐患的,Extjs跨域也需要服务器端的配合
 *             Ext.data.proxy.Direct命令
 * 
 */
Ext.onReady(function() {
   Ext.regModel("user", {
      fields : [{
         name : 'name',
         type : 'string'
        }, {
         name : 'age',
         type : 'int'
        }]

     });

   // 不用create方法,直接用proxy创建对象数据
   var userData = [{
      name : 'www.baidu.com',
      age : 21
     }, {
      name : 'gougou.com',
      age : 22
     }];
   // 创建模型的代理类
   var memoryProxy = Ext.create("Ext.data.proxy.Memory", {
      data : userData,
      model : 'user'
     });
   // 可以crud
   /*userData.push({
      name :'soso.com',
      age : 32
     });
   // update 更新操作
   memoryProxy.update(new Ext.data.Operation({
        action :'update',
        data :userData
       }), function(result){},this);
*/
   // read读操作
   memoryProxy.read(new Ext.data.Operation(), function(result) {
      var datas = result.resultSet.records;
      Ext.Array.each(datas, function(model) {
         alert(model.get('name'));
        });
     });
  });

 

/**

 * jsonP使用
 */
Ext.onReady(function() {
   Ext.regModel("person", {
      fields : [{
         name : 'name',
         type : 'string'
        }],
      proxy : {
       type : 'jsonp',
       url : 'www.baidu.com'
      }
     });

   var person = Ext.ModelManager.getModel('person');

   person.load(1, {
      scope : this,
      success : function(model) {
       alert(model.get('name'));
      }
     });
  })

 

 

 

/**

 * Ext4.0 localStorage使用不能夸浏览器 但能存储上次加载的数据到浏览器中
 */

Ext.onReady(function() {

   Ext.regModel("user", {
      fields : [{
         name : 'name',
         type : 'string'
        }, {
         name : 'age',
         type : 'int'
        }],
      proxy : {
       type : 'localstorage',
       id : 'twitter-Searches'
      }
     });
   // 用store来初始化数据
   var store = new Ext.data.Store({
      model : user
     });
   store.add({
      name : 'www.baidu.com'
     });

   store.sync();// 异步加载

   store.load();
   var msg = [];
   store.each(function(rec) {
      msg.push(rec.get('name'));
     });
   alert(msg.join("\n"));
  })

 

/**

 * ajax代理模式
 */
Ext.onReady(function() {
   Ext.regModel("person", {
      fields : [{
         name : 'name',
         type : 'string'
        }]
     });
   var ajaxProxy = new Ext.data.proxy.Ajax({
      url : 'person.jsp',
      model : 'person',
      reader : 'json'
     });

   // doRequest 读取数据

   ajaxProxy.doRequest(new Ext.data.Operation({
        action : 'read',
        limit : 10,// 分页
        start : 1,
        sorters : [new Ext.util.Sorter({// 排序
         property : 'name',
         direction : 'ASC'
        })]
       }), function(o) {

      var text = o.response.responseText;

      // Ext.JSON.decode() Decodes (parses) a JSON string to
      // an object.
      alert(Ext.JSON.decode(text)['name']);
     });
  })

 

/**

 * sessionstorage:单浏览器模式
 */
Ext.onReady(function() {
   Ext.regModel("user", {
      fields : [{
         name : 'name',
         type : 'string'
        }],
      proxy : {
       type : 'sessionstorage',
       id : 'twiS'
      }
     });
     
     var store=new Ext.data.Store({
     model:user
     });
     store.add({name:'wangbass'});
     store.sync();
     store.load();
     var msg=[];
     store.each(function(rec){
     msg.push(rec.get('name'));
     });
   alert(msg.join("\n")); 
  })

 

转载于:https://www.cnblogs.com/lost-1987/articles/3344187.html

你可能感兴趣的文章
JSON跨域解决方案收集
查看>>
SSH框架整合总结
查看>>
图的深度优先遍历
查看>>
C# 之 提高WebService性能大数据量网络传输处理
查看>>
md5sum命令详解
查看>>
[bzoj1004] [HNOI2008] Cards
查看>>
应该是实例化对象的没有对属性赋值时,自动赋值为null,但不是空指针对象引用...
查看>>
原生HttpClient详细使用示例
查看>>
几道面试题
查看>>
Factory Design Pattern
查看>>
python中贪婪与非贪婪
查看>>
guava API整理
查看>>
无锁编程笔记
查看>>
jquery mobile
查看>>
如何在vue单页应用中使用百度地图
查看>>
Springboot使用步骤
查看>>
Spring属性注入
查看>>
Springboot-配置文件
查看>>
Springboot-日志框架
查看>>
SpringBoot-thymeleaf
查看>>