1

我是新手ExtJS DirectDirectJNgine。他们之间的关系让我很困惑。我无法获得概览图片。

我所知道的是: ExtJS是一个JavaScript专注于UI设计的框架。APIs它为程序员提供了过多的东西。我可以毫不费力地调用这些 API。

来自官方网站:

Ext Direct是一种与平台和语言无关的技术,可将服务器端方法远程连接到客户端。Ext Direct 允许在 Ext JS 应用程序的客户端和所有流行的服务器平台之间进行无缝通信。

我的想法是:ExtJS Direct 也是提供给 ExtJS 团队供我们使用的 API 的子集。这些 API 可以方便我们调用服务器端方法的工作。但我想深入一点。

  1. 服务器端方法可以是任何语言方法,如 JAVA C++ PHP 等。直接 API 处理支持不同服务器端语言方法的所有可能性?

来自官方网站:

DirectJNgine(或简称 DJN)是 ExtJs 的 Ext Direct API 的基于 Java 的实现。ExtJs 可能是基于 Web 的应用程序中最强大和最有吸引力的 UI 之一,正如在此处以及在许多其他示例中可以看到的那样。DirectJNgine 通过如此强大的前端使使用 Java 业务类的全部功能变得更加容易,使 Java 方法可以直接从客户端调用。

  1. 由于 ExtJS Direct 已经实现了用于无缝远程方法调用的 API。为什么 DirectJNgine 需要实现这些 ExtJS Direct API?“ExtJs 的 Ext Direct API 的基于 java 的实现”是什么意思?
4

3 回答 3

3

我将服务器端添加到定义中DirectJNgine

DirectJNgine是一个开源库,它提供基于 Java 的服务器端 Ext Direct API 实现。

Ext Direct是一个javascript框架,驻留在客户端,让我们调用任何服务器API。调用是通过 HTTP 进行的——这就是它不依赖于服务器语言的原因。您制定 HTTP 请求,而不是 Java/PHP/任何其他请求。

服务器 API 处理 HTTP 请求,可以用 Java、C++、PHP、.Net 等实现。Java 实现之一是DirectJNgine. 它在服务器上运行并响应Ext Direct呼叫。

在您的项目中,您可以同时使用Ext DirectDirectJNgine用于客户端和服务器之间的通信。它们不重叠,它们在网络的相对两侧相互合作。

你会为表示层使用一些框架(可能是ExtJS)和一些用于服务器业务/存储/其他层的框架(利用DirectJNgine它是一个Java框架)。

于 2013-05-09T07:58:03.960 回答
0

Extjs 需要知道可能操作的 URL、方法和参数计数,这由例如 DirectJNgine 提供。

该 API 还负责 ExtJS 和 JAVA 之间的消息传递,即将传入的 JSON 对象转换为 JAVA 方法(带有方法名称和参数的 Json 传递给 JAVA 方法,它们可以在一次调用中执行多个操作)。并以 JSON 格式传回 JAVA 方法的结果。

于 2013-05-07T09:43:02.433 回答
0

当我意识到发生了一些奇怪的事情并想知道原因时,我对 extdirectspring 做了一些研究。实际上,extdirect 所做的是以 json 的形式(可能通过其他媒介)向客户端提供服务器端方法的描述。

在客户端,您最终会得到从此 json 构建的对象,这些对象知道如何调用服务器代码。在 java (extdirectspring) 实现中,这会在程序的命名空间中为每个用“ExtDirectMethod”属性装饰的 java 类创建一个静态变量。这个变量似乎总是第一个字母小写的类名。我进行了一些挖掘,这似乎是巧合 - 该名称来自 spring 中的 bean 名称,而不是由 extdirectspring 定义的。

在 extdirectspring 中,设置通过以太(通过 servlet + spring)工作(还没有完全弄清楚它是如何工作的)并且它被预定义为响应对 api.js 的请求(除其他外)。然后,这将返回分配给 ext 命名空间中的静态变量的配置对象。默认情况下,此变量称为 REMOTING_API。

要让客户端了解服务器必须提供的内容,您需要进行如下调用:

Ext.direct.Manager.addProvider(Ext.app.REMOTING_API);

extjs 启动后。

于 2014-02-03T13:02:18.880 回答