Extjs 解释Ext.directapi

Extjs 解释Ext.directapi,extjs,sencha-touch,sencha-touch-2,Extjs,Sencha Touch,Sencha Touch 2,我正在努力掌握Ext.direct。官方网站上有以下API描述: Ext Direct堆栈的API组件的目的是输出Ext Direct的方法配置,以创建客户端存根。通过生成这些代理方法,我们可以像调用客户端方法一样无缝地调用服务器端方法,而不必担心客户端和服务器端之间的交互 我只是不太明白输出extdirect的方法配置来创建客户端存根意味着什么。有人愿意解释一下这在基层是什么意思吗?如果您查看以下资源的输出,这将更有意义 请注意,这是作为标记加载到页面上的,即: <script type

我正在努力掌握Ext.direct。官方网站上有以下API描述:

Ext Direct堆栈的API组件的目的是输出Ext Direct的方法配置,以创建客户端存根。通过生成这些代理方法,我们可以像调用客户端方法一样无缝地调用服务器端方法,而不必担心客户端和服务器端之间的交互


我只是不太明白输出extdirect的方法配置来创建客户端存根意味着什么。有人愿意解释一下这在基层是什么意思吗?

如果您查看以下资源的输出,这将更有意义

请注意,这是作为
标记加载到页面上的,即:

<script type="text/javascript" src="php/api.php"></script>
这似乎是在模仿a的工作方式,因为它可以提供服务描述并列出所有可用于查询的选项。换句话说:Ext.directAPI从SOAP中获取一个概念,并将其应用到Javascript设置中

后端包含API,因此这是生成包含所有方法名称和签名的服务定义的最容易的地方。一旦提供了Ext.Direct API方法存根(在后端),前端Ext.Direct库将完成管道工作,并将其转化为可在JavaScript中查询和使用的实际功能。与使用WSDL自动生成(在或中)SOAP代理类的方式大致相同


就我个人而言,我觉得这对我来说有点太轻浮了。大多数API都非常直截了当,试图实现类似于WSDL的东西实际上会使使用变得比直接与它交谈困难得多。

也许看一个例子会有所帮助。转到此处:,查看页面源代码并查看
api.php
。这是服务器预期产生的输出。谢谢。我想我现在明白了。如果我错了,请纠正我:服务器堆栈的api组件为客户端存根生成方法配置。然后客户端的ext.direct会根据这些配置自动生成存根。正确,我将进一步更新这个问题以澄清这一点。
Ext.ns("Ext.app");
Ext.app.REMOTING_API={
    "url": "php\/router.php",
    "type": "remoting",
    "actions": {
        "TestAction": [{
                "name": "doEcho",
                "len": 1
            }, {
                "name": "multiply",
                "len": 1
            }, {
                "name": "getTree",
                "len": 1
            }, {
                "name": "getGrid",
                "len": 1
            }, {
                "name": "showDetails",
                "params": [
                    "firstName",
                    "lastName",
                    "age"
                ]
            }],
        "Profile": [{
                "name": "getBasicInfo",
                "len": 2
            }, {
                "name": "getPhoneInfo",
                "len": 1
            }, {
                "name": "getLocationInfo",
                "len": 1
            }, {
                "name": "updateBasicInfo",
                "len": 0,
                "formHandler": true
            }]
    }
};