Extjs学习笔记(四) 数据代理

本文详细介绍了ExtJS中数据代理的使用,包括Memory、WebStorage、SessionStorage、Ajax和JsonP等不同类型的数据代理,以及如何进行CRUD操作。

Extjs学习笔记(四) 数据代理

数据代理proxy是进行数据读写的主要途径

结构图:



 Ext.data.proxy.Proxy 代理类的根类(他分为客户端(Client)代理和服务器代理(Server))
    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.data.proxy.Memory

  1. (function(){  
  2.     Ext.onReady(function(){  
  3.         Ext.regModel("user",{  
  4.             fields:[  
  5.                 {name:'name',type:'string'},  
  6.                 {anem:'age',type:'int'}  
  7.             ]  
  8.         });  
  9.         //不用create方法 我们直接用proxy来创建对象数据  
  10.         var userData = [  
  11.             {name:'uspcat.com',age:1},  
  12.             {name:'yunfengcheng',age:26}  
  13.         ];  
  14.         //创建model的代理类  
  15.         var memoryProxy = Ext.create("Ext.data.proxy.Memory",{  
  16.             data:userData,  
  17.             model:'user'  
  18.         })  
  19.           
  20.         userData.push({name:'new uspcat.com',age:1});  
  21.         //update  
  22.         memoryProxy.update(new Ext.data.Operation({  
  23.             action:'update',  
  24.             data:userData  
  25.         }),function(result){},this);  
  26.           
  27.         //就可以做CRUD了  
  28.         memoryProxy.read(new Ext.data.Operation({  
  29.           action:'read'  
  30.         }),function(result){  
  31.             var datas = result.resultSet.records;  
  32.             Ext.Array.each(datas,function(model){  
  33.                 alert(model.get('name'));  
  34.             })  
  35.         });  
  36.     });  
  37. })();  

 

Ext.data.proxy.WebStorage

  1. (function(){  
  2.     Ext.onReady(function(){  
  3.         Ext.regModel("user",{  
  4.             fields:[  
  5.                 {name:'name',type:'string'}  
  6.             ],  
  7.             proxy:{  
  8.                 type:'localstorage',  
  9.                 id  : 'twitter-Searches'  
  10.             }  
  11.         });  
  12.         //我们用store来初始化数据  
  13.         var store = new Ext.data.Store({  
  14.             model:user  
  15.         });  
  16.         store.add({name:'uspcat.com'});  
  17.         store.sync();  
  18.         store.load();  
  19.         var msg = [];  
  20.         store.each(function(rec){  
  21.             msg.push(rec.get('name'));  
  22.         });  
  23.         alert(msg.join("\n"));  
  24.     })  
  25. })();  

 

Ext.data.proxy.SessionStorage

  1. (function(){  
  2.     Ext.onReady(function(){  
  3.         Ext.regModel("user",{  
  4.             fields:[  
  5.                 {name:'name',type:'string'}  
  6.             ],  
  7.             proxy:{  
  8.                 type:'sessionstorage',  
  9.                 id  : 'twitter-Searches'  
  10.             }  
  11.         });  
  12.         //我们用store来初始化数据  
  13.         var store = new Ext.data.Store({  
  14.             model:user  
  15.         });  
  16.         store.add({name:'yunfengcheng'});  
  17.         store.sync();  
  18.         store.load();  
  19.         var msg = [];  
  20.         store.each(function(rec){  
  21.             msg.push(rec.get('name'));  
  22.         });  
  23.         alert(msg.join("\n"));  
  24.     })  
  25. })();  

 Ext.data.proxy.Ajax

  1. (function(){  
  2.     Ext.onReady(function(){  
  3.         Ext.regModel("person",{  
  4.             fields:[  
  5.                 {name:'name',type:'string'}  
  6.             ]  
  7.         });  
  8.         var ajaxProxy = new Ext.data.proxy.Ajax({  
  9.             url:'person.jsp',  
  10.             model:'person',  
  11.             reader:'json',  
  12.             limitParam : 'indexLimit'  
  13.         });   
  14.         ajaxProxy.doRequest(new Ext.data.Operation({  
  15.                 action:'read',  
  16.                 limit:10,  
  17.                 start :1,  
  18.                 sorters:[  
  19.                     new Ext.util.Sorter({  
  20.                         property:'name',  
  21.                         direction:'ASC'  
  22.                     })  
  23.                 ]  
  24.             }),function(o){  
  25.             var text = o.response.responseText;  
  26.             alert(Ext.JSON.decode(text)['name']); //解码  
  27.         });  
  28.     });  
  29. })();  

 Ext.data.proxy.JsonP

 后台返回要求:

 

  1. Ext.data.JsonP.callback1(json对象);  

  js:

    1. (function(){  
    2.     Ext.onReady(function(){  
    3.         Ext.regModel("person",{  
    4.             fields:[  
    5.                 {name:'name',type:'string'}  
    6.             ],  
    7.             proxy:{  
    8.                 type:'jsonp',  
    9.                 url:'http://www.uspcat.com/extjs/person.php'  
    10.             }  
    11.         });  
    12.         var person = Ext.ModelManager.getModel('person');  
    13.         person.load(1,{  
    14.             scope:this,  
    15.             success:function(model){  
    16.                 alert(model.get('name'));  
    17.             }  
    18.         });  
    19.     });  
    20. })();  
分类:  EXTJS学习转发

内容概要:本文详细介绍了“秒杀商城”微服务架构的设计与实战全过程,涵盖系统从需求分析、服务拆分、技术选型到核心功能开发、分布式事务处理、容器化部署及监控链路追踪的完整流程。重点解决了高并发场景下的超卖问题,采用Redis预减库存、消息队列削峰、数据库乐观锁等手段保障数据一致性,并通过Nacos实现服务注册发现与配置管理,利用Seata处理跨服务分布式事务,结合RabbitMQ实现异步下单,提升系统吞吐能力。同时,项目支持Docker Compose快速部署和Kubernetes生产级编排,集成Sleuth+Zipkin链路追踪与Prometheus+Grafana监控体系,构建可观测性强的微服务系统。; 适合人群:具备Java基础和Spring Boot开发经验,熟悉微服务基本概念的中高级研发人员,尤其是希望深入理解高并发系统设计、分布式事务、服务治理等核心技术的开发者;适合工作2-5年、有志于转型微服务或提升架构能力的工程师; 使用场景及目标:①学习如何基于Spring Cloud Alibaba构建完整的微服务项目;②掌握秒杀场景下高并发、超卖控制、异步化、削峰填谷等关键技术方案;③实践分布式事务(Seata)、服务熔断降级、链路追踪、统一配置中心等企业级中间件的应用;④完成从本地开发到容器化部署的全流程落地; 阅读建议:建议按照文档提供的七个阶段循序渐进地动手实践,重点关注秒杀流程设计、服务间通信机制、分布式事务实现和系统性能优化部分,结合代码调试与监控工具深入理解各组件协作原理,真正掌握高并发微服务系统的构建能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值