我对vaadin框架很陌生,正在阅读Vaadin,但无法理解客户端Vaadin应用程序的流程。如果有人解释Vaadin客户端应用程序的工作,那将是非常感谢的。vaadin提供了两种开发模式,即客户端和服务器端。
发布于 2014-09-16 13:11:22
客户端应用程序只不过是浏览器下载和执行的一个JavaScript应用程序。这个JavaScript应用程序是用Java编写的,由内置到IDE使用的瓦丁库中的Google工具包(GWT)编译器编译到JavaScript中。
此应用程序可能与在服务器上运行的Java应用程序交互,也可能不与之交互。如果没有,那么它就是一个客户端应用程序。如果是这样的话,它就是服务器端应用程序.
希望能帮上忙。
发布于 2015-03-03 05:35:33
其他答案并不是精确或彻底的。所以我会在这个问题上加上我自己的看法。
客户端
Vaadin的主要观点是,作为一个程序员,我们认为这类似于构建桌面应用程序。我们并不真正担心应用程序的客户端和服务器端,我们从打开窗口( 用户界面实例)、表单(布局)和字段&按钮(组件)的角度来考虑。
纯Java
我们使用纯Java编写所有这些UI、布局和组件对象。底层的瓦丁框架利用Google工具包(GWT)将您的Java代码的用户界面部分转换为JavaScript。该JavaScript代码在运行时透明地传递到web浏览器。因此,JavaScript用于在屏幕上绘制一个按钮和字段,并用于检测用户何时单击该按钮或该字段中的类型。
应用程序生活在服务器上
同时,在服务器端您的业务逻辑仍然是纯Java的。用户单击一个按钮会导致您的一些Java代码在服务器上执行。与字段中的键入相同;类型化文本将自动转发到服务器上的Java代码。从我们这个Java Vaadin应用程序开发人员的角度来看,整个应用程序似乎都运行在纯Java中。Vaadin框架会自动处理以下内容的来回通信:
⇆/客户端Java/服务器端。
所以,用Vaadin做一个网络应用完全不像做一个web应用程序。在大多数情况下,Vaadin开发人员不需要关注HTTP、HTML、CSS、DOM、JavaScript/ECMAScript、Servlet/JSP等等。所有这些网络技术实际上都在使用Vaadin应用程序,但是Vaadin以透明、几乎神奇的方式为我们解决了所有这些问题。我们只使用纯Java编写,以便在Vaadin中构建非常好的“桌面”-style应用程序。
您的所有业务逻辑、Java业务对象、SQL和数据库连接等都只存在于服务器上。web浏览器只包含足够的数据和JavaScript,以显示当前预期的用户界面。我认为这是旧X窗口系统的现代转世。(忽略最后一条评论,你还太年轻,记不起MTV播放音乐视频的时间。)
在web浏览器上,我们只执行JavaScript。我们的用户不需要在他们的计算机上安装Java。不涉及Java小程序。
Vaadin不是“又一个Web应用框架”
这听起来很难相信,也可能很难理解。这是因为Vaadin的架构非常不同。Vaadin肯定不是“又一个HTML模板的web应用框架”。Vaadin的方法几乎是独一无二的;我所知道的唯一一个类似架构的web应用程序开发框架是Xojo Web版。
在学习Vaadin时忽略“客户端”谈话
Vaadin团队一直致力于允许Vaadin应用程序脱机工作,而不是连接到Java服务器。但这是尖端的研发工作,而不是Vaadin的主要目的或用例。当你读到“客户端Vaadin”时,可能就是在这种背景下。
另一个可能引发您的问题的上下文是“Vaadin”中的客户端应用程序章节。基本上,这是关于Vaadin的最新版本,增加了对高级开发人员的支持,这些开发人员希望在客户端的web浏览器上更好地控制JavaScript中发生的事情。但我认为,最初吸引人们关注Vaadin的主要目的是分散注意力:不关心客户端浏览器上的JavaScript。所以我建议在学习Vaadin的时候跳过这一章。
或者上下文可能指使用GWT在web浏览器上呈现基于JavaScript的用户界面表示。在学习Vaadin时,您可以忽略这个上下文,因为它只适用于将您自己的用户界面小部件构建为附加的到Vaadin的内置小部件库存。
Vaadin API doc中列出的许多类都是在学习Vaadin时应该忽略的与GWT相关的客户端类。对于许多工具来说,浏览API文档是学习的好方法。但对Vaadin来说不是这样。在日常工作中,我们只使用了一小部分列出的类.我建议把重点放在瓦丁书、演示站点、教程、论坛和StackOverflow上。
https://stackoverflow.com/questions/25864543
复制相似问题