`
yipsilon
  • 浏览: 246930 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

CMSPAD中新加的一个小特性:JSON服务

阅读更多
很多界面效果库都是使用JSON来提供服务的,例如ExtJS等。因此,为了更好的兼容这些类库,我们为CMSPAD增加了一个JSON服务的特性。

同样地,它也是通过Portlet来对页面进行服务的:
class SimplePortlet extends Portlet{

  // 直接返回JSON字符串
  public function jsonMyService1(){
    return '{"hello":{"world":"JSON 测试"}}';
  }

  // 返回对象时,自动转换成JSON字符串
  public function jsonMyService2(){
    return array('hello' => array('world' => 'JSON 测试'));
  }
}

而在客户端的代码中,我们可以这样调用:
<script type="text/javascript">
function callJSON(o){
  alert(o.hello.world);
}
</script>
<button type="button" onclick="cmspad.json('SimplePortlet.myService1', callJSON);">JSON 测试</button>

下面看一下在实际应用中的JSON服务:我们在经典的ExtJS Desktop 2.0演示中,可以通过远程调用来进行对桌面进行配置。源代码如下:
getDesktopConfig : function(){
  // can call server for saved module id's
  Ext.Ajax.request({
    success: function(o){
      var decoded = Ext.decode(o.responseText);
			
      if(decoded.success){
        this.initDesktopConfig(decoded.config);
      }else{
        // error
      }
    },
    failure: function(){
      // error
    },
    scope: this,
    url: 'php/DesktopConfig.php'
  });
}

上面的代码是使用Ext自带的AJAX组件进行远程调用的,而如果要使用CMSPAD的PHPortlet技术,该怎么办呢?
getDesktopConfig : function(){
  var desktop = this;
  cmspad.json('SimplePortlet.myDesktopExample', function(o){
    desktop.initDesktopConfig(o.config);
  });
}

这样,与ExtJS的整合即可完成。
分享到:
评论

相关推荐

    基于matlab实现BA无标度网络拓扑生成算法,BA模型有两个重要特性:增长特性和优先连接特性.rar

    本压缩包文件包含了一个基于MATLAB实现BA无标度网络拓扑生成算法的程序,让我们深入探讨这个模型以及MATLAB在其中的角色。 **BA模型的两个关键特性:** 1. **增长特性(Growth)**:BA模型假设网络是动态增长的,...

    20210801-东亚前海证券-中新集团-601512-首次覆盖报告:中新合璧,打造“一体两翼”园区综合运营商.pdf

    2. 业务板块:中新集团的业务板块被分为四个主要部分:园区开发运营、产业载体配套、绿色公用以及多元化服务。这表明中新集团不仅在传统园区开发上拥有优势,还在产业服务、环境保护及增值服务上进行多元化布局。 3...

    中新药业:中新药业招股说明书.PDF

    总的来说,中新药业的招股说明书提供了一个全面的视角,让投资者了解公司的基本情况、未来计划和潜在风险,以帮助投资者做出投资决策。投资者需仔细阅读并理解其中的信息,以评估投资中新药业的潜在回报和风险。

    20210629-长城证券-中新药业-600329-公司深度报告:中新药业的资源、潜力及机会.pdf

    中新药业在医药资源的开发上潜力巨大,尤其是速效救心丸这一独家品种,预期在未来十年中,量和价格的增长潜力将远超过过去的增速。此外,公司当前的销售费用率较高,存在进一步下降的空间。在公司治理机制得以优化的...

    中新集团:中新集团2021年半年度报告.zip

    【描述】:“中新集团:中新集团2021年半年度报告.zip”是一个压缩文件,其中包含了中新集团2021年上半年度的详细报告。ZIP格式是一种常见的文件压缩格式,用于将多个文件打包成一个单一的文件,以便于存储、传输和...

    中新金盾抗拒绝服务(DOS/DDOS)系统技术白皮书

    拒绝服务攻击(DOS/DDOS)是近年来愈演愈烈的一种攻击手段,其主要目的是造成目标主机的TCP/IP协议层拥塞、或者导致应用层异常终止而形成拒绝服务现象。中新金盾防火墙针对基于Internet的信息平台,需要对不可控网络...

    jquery.json-1.3.js

    ecshop中新定义的json文件, 提供给大家下载哦!!!

    swift-展示Swift4.2中新特性示例的Xcodeplayground

    总的来说,通过这个"swift-展示Swift4.2中新特性示例的Xcodeplayground",开发者可以深入了解并实践Swift 4.2的每一个新特性,提升自己的Swift编程技能。无论是对于初学者还是经验丰富的开发者,都是一个宝贵的资源...

    中新力合“云融资服务平台”介绍.docx编程资料

    **中新力合“云融资服务平台”**是一个旨在解决中小企业融资难题的综合性平台。该平台利用云计算技术,通过标准化和规范化的金融服务管理,构建了一个开放式的金融服务池。此平台面向中小企业,能够根据其特定需求...

    中新集团:中新集团2021年半年度报告.PDF

    【中新集团2021年半年度报告】是中新苏州工业园区开发集团股份有限公司对2021年上半年运营状况的详尽总结。报告展示了公司在该时段的财务状况、业务进展以及潜在风险,旨在为投资者和相关利益方提供真实、准确、完整...

    flex java环境中需要在tomcat的webapp中新加的war文件

    标题和描述中提到的"flex java环境中需要在tomcat的webapp中新加的war文件",实际上是指要将包含BlazeDS服务的WAR文件添加到Tomcat服务器的web应用程序结构中。这个WAR文件通常名为`blazeds.war`或`flex-services....

    中新药业-600329-公司深度报告:混改落地将会开启公司价值回归之路.zip

    【中新药业-600329-公司深度报告】主要关注的是中国中药行业的领军企业中新药业在混改(混合所有制改革)后的变化和发展前景。混改是中国国有企业改革的重要举措,旨在通过引入非国有资本,提升企业的活力、竞争力和...

    eMule电驴官方自动添加服务器列表及手工添加服务器的方法.docx

    在这里,用户可以看到一个“列表”按钮,点击后可以输入服务器地址。将从服务器列表中复制的地址粘贴进去,保存设置,最后勾选“连接到服务器时更新服务器列表”。这样,即使在连接服务器时,电驴也会自动保持服务器...

    中新赛克:首次公开发行股票招股说明书.PDF

    综上所述,中新赛克的首次公开发行股票,不仅仅是一次资本的集聚,更是一次战略的起航。股东们坚定的锁定期承诺,体现了对公司未来发展的期待和信心。而投资者,则将通过细致的分析和明智的选择,成为中新赛克成长...

    中新智擎想让服务机器人真正落地.pdf

    【中新智擎——服务机器人落地应用的先行者】 中新智擎是一家专注于服务机器人领域的创新企业,成立于2015年,近期获得了招商系中白产业投资基金的A轮融资,金额达到数千万美元。与市面上众多服务机器人公司不同的...

    中新控股:2019年报.PDF

    GEM被设定为一个主要接纳小型和中型企业上市的市场,与主板相比,这些公司可能带有更高的投资风险。投资者应充分认识到这种风险,并在做出投资决策前进行充分且审慎的考虑。由于GEM上市的公司通常规模较小,其证券...

    中新天津生态城智慧城市平台.docx

    中新天津生态城智慧城市平台作为这样的典范,旨在通过先进的科技手段,打造一个可持续发展、生态友好且管理高效的新型城市。 1. 背景介绍 中新天津生态城智慧城市平台的建设源于对环保、可持续性和生活质量的追求...

    18.广州中新知识城规划咨询与服务专题研究2010——中规院.zip

    广州中新知识城的规划,旨在打造一个集知识创新、科技研发、商务办公和宜居生活于一体的现代化新城。规划可能涵盖了以下几个关键点: 1. 土地利用规划:分析了现有土地资源,合理划分工业、商业、居住、绿地等功能...

    P04:UNIX V6++中新进程的创建与父子进程同步1

    当`fork()`被调用时,它会创建一个新的进程,这个新进程被称为子进程,而原来的进程则继续存在,称为父进程。子进程继承父进程的所有资源,但拥有独立的进程ID(PID)。在代码2中,可以看到`fork()`在循环中被调用,...

    中新猕猴桃贸易商务谈判剧本.doc

    【中新猕猴桃贸易商务谈判剧本】 在本次中新猕猴桃贸易商务谈判中,涉及到的主要角色包括双方的高层管理团队、财务、市场、采购、法律和技术部门的关键人员,以及翻译和辅助人员。以下是对各角色及其职责的详细阐述...

Global site tag (gtag.js) - Google Analytics