ExtJS Direct和DirectJNgine之间的关系

时间:2013-05-07 08:55:43

标签: javascript extjs

ExtJS DirectDirectJNgine的新用户。他们之间的关系让我很困惑。我无法得到概述图片。

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

来自官方网站:

  

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

我的想法是:ExtJS Direct也是ExtJS团队供我们使用的API的子集。这些API可以帮助我们调用服务器端方法。但我想深入了解一下。

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

      

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

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

3 个答案:

答案 0 :(得分:3)

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

  

DirectJNgine 是一个开源库,提供 服务器端 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框架)。

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

当我意识到一些奇怪的事情正在发生并想知道原因时,我做了一些挖掘extdirectspring。有效地,extdirect所做的是以json的形式向客户端提供服务器端方法的描述(+可能通过其他介质)。

在客户端,你最终得到了从这个json构建的对象,它们知道如何调用服务器代码。在java(extdirectspring)实现中,这为每个使用“ExtDirectMethod”属性修饰的java类在程序的命名空间中创建一个静态变量。这个变量似乎总是类名,第一个字母是小写的。我有点挖掘,这似乎是巧合的 - 这个名字来自于春天的bean名称,并没有被extdirectspring定义。

在extdirectspring中,设置通过以太(通过servlet + spring)工作(尚未完全确定其工作原理),并且它是预定义的,以响应对api.js的请求(以及其他内容)。然后,它返回分配给ext命名空间中的静态变量的配置对象。默认情况下,此变量名为REMOTING_API。

要让客户端的东西知道服务器提供的内容,您需要进行如下调用:

Ext.direct.Manager.addProvider(Ext.app.REMOTING_API);
在extjs爆发之后