ExtJS Direct
和DirectJNgine
的新用户。他们之间的关系让我很困惑。我无法得到概述图片。
我所知道的是:
ExtJS
是一个专注于UI设计的JavaScript
框架。它为程序员提供了过多的APIs
。我可以毫不犹豫地调用这些API。
来自官方网站:
Ext Direct 是一种与客户端远程服务器端方法的平台和语言无关的技术。 Ext Direct允许在Ext JS应用程序的客户端和所有流行的服务器平台之间进行无缝通信。
我的想法是:ExtJS Direct也是ExtJS团队供我们使用的API的子集。这些API可以帮助我们调用服务器端方法。但我想深入了解一下。
来自官方网站:
DirectJNgine (简称DJN)是一个基于Java的ExtJs Ext Direct API实现。 ExtJs可能是基于Web的应用程序最强大和最具吸引力的UI之一,可以在这里看到,以及许多其他示例。 DirectJNgine使得使用如此强大的前端的Java业务类的全部功能变得更加容易,使Java方法可以直接从客户端调用。
答案 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 Direct
和DirectJNgine
进行客户端和服务器之间的通信。 它们不重叠,它们在网络的相对侧相互配合。
你可以使用一些框架用于表示层(可能是ExtJS)和一些用于服务器业务/存储/其他层的框架(使用DirectJNgine
它将是一个Java框架)。
答案 1 :(得分:0)
Extjs需要知道可能的操作的URL,方法和参数计数,这由例如DirectJNgine提供。
API还负责ExtJS和JAVA之间的消息传递,即将传入的JSON对象转换为JAVA方法(带有方法名称和参数的Json传递给JAVA方法,它们可以在一次调用中执行多个操作)。并以JSON格式传回JAVA方法的结果。
答案 2 :(得分:0)
在客户端,你最终得到了从这个json构建的对象,它们知道如何调用服务器代码。在java(extdirectspring)实现中,这为每个使用“ExtDirectMethod”属性修饰的java类在程序的命名空间中创建一个静态变量。这个变量似乎总是类名,第一个字母是小写的。我有点挖掘,这似乎是巧合的 - 这个名字来自于春天的bean名称,并没有被extdirectspring定义。
在extdirectspring中,设置通过以太(通过servlet + spring)工作(尚未完全确定其工作原理),并且它是预定义的,以响应对api.js的请求(以及其他内容)。然后,它返回分配给ext命名空间中的静态变量的配置对象。默认情况下,此变量名为REMOTING_API。
要让客户端的东西知道服务器提供的内容,您需要进行如下调用:
Ext.direct.Manager.addProvider(Ext.app.REMOTING_API);
在extjs爆发之后。