1

我是一名 java 开发人员,我想为 web 开发富客户端。我的问题是我讨厌 javascript、flash 等以及大多数通常用于 Web 客户端的编程语言。我很乐意继续使用 Java 开发 Web 客户端,这些客户端可以在常见的 Web 浏览器上使用,为什么不可以在新的时尚移动设备上使用。我正在寻找一些建议/警告来做出一个好的选择。

Java 小程序似乎非常适合我的情况,但根据一些传闻,它并不是一个真正可持续的解决方案。我应该看看JavaFX吗?GWT?还有其他一些可能吗?

4

5 回答 5

4

你想让我做什么?Vaadin 基于 GWT,因此使用比 Java Applet 慢得多的 HTML5 + JavaScript。我已经尝试过船和带有 Swing 的 Applets 比 Vaadin 快很多。

使用 Java Applets、Swing 和 Hessian,您可以在业务应用程序中获得无与伦比的性能。Hessian 是一个非常快速的二进制 Web 服务协议。使用 JavaScript,您通常仅限于文本编码的 Web 服务协议,如 Json 和各种基于 XML 的协议。与二进制协议相比,基于文本的协议会消耗大量 CPU、内存和带宽——它们并没有真正为您提供任何优势。

Applets 的弱点是硬件加速图形,如 OpenGL 和多媒体。如果您正在开发游戏或电影播放器​​,Applet 就不是那么好。

JavaFX 承诺修复硬件加速图形性能和视频编解码器。根据您的描述,尚不清楚您是否需要等待。

但是,如果您真的需要比标准小程序所能提供的更多的东西,那么 web start 可能是一个解决方案。它有点像带有签名或未签名应用程序的旧 ActiveX,它可以通过 sun 签名或询问用户来获得额外权限。这将允许您使用 JOGL 或 3d 场景图引擎。

于 2012-09-08T21:20:33.940 回答
1

您非常适合 JavaServer Faces (JSF)。是的,试穿一下。看,你穿它们看起来很棒。JSF 的吸引力在于 1。它是一种标准化技术,是 Java EE 2 的一部分。它在很大程度上依赖于 Java 编程而不是任何 JavaScript 编码(根本没有完成)。3. JSF 已经出现了一段时间,并且运行良好。此外,JSF 与 Ajax 一起工作,开箱即用(额外的好处),无需编写 JavaScript 的单个音节。唯一的缺点是您必须编写一些 html 代码,而“facelets”基本上是 html 页面,其中包含一些您需要学习的额外标签。但是绝大多数真正的处理是在Java中完成的。JSF 也可以在没有 Java EE 额外包袱的情况下工作,它是为与普通的 Tomcat 服务器(或 Glassfish 或 JBoss 等)和浏览器一起工作而构建的,

于 2012-04-12T12:39:53.370 回答
1

我认为 JavaFX 作为一种基于 Java 的 RIA 技术看起来很有前途。虽然它是最前沿的。Mac OS X 和 Linux 版本目前仅作为预览版提供。已宣布支持移动和其他设备,但尚未发布,AFAIK。

于 2012-04-12T12:47:34.513 回答
1

Vaadin也很合适,根本不需要 Javascript 或 HTML,即使是新组件开发。页面布局是使用布局管理器(如 Swing)完成的。新组件可以由现有组件组成(同样,如 Swing),或者使用 GWT(相当简单,纯 Java)从头开始编写。

有合理的附加组件选择,涵盖了核心框架中没有的一些功能。

对于具有 Swing 经验的 Java 开发人员来说,该框架非常易于使用,并且具有开箱即用的精美外观。然而,布局管理器确实使使用 CSS 更改外观和感觉变得困难 - 像添加边框这样的简单任务很难。

布局也相当“沉重”,这意味着 Vaadin 网站可能会感到略微呆滞。以我的经验,感觉还是比一些较重的 JSF 框架好。

它与所有主流浏览器兼容。

演示者: http: //demo.vaadin.com/sampler/

您也可以考虑Wicket。这有一个类似的基于组件的方法,但组件是使用简单的 HTML 片段定义的,这导致更轻的 DOM(因此更好的浏览器性能)和更好的外观控制。然而,Wicket 的学习曲线更陡峭。

于 2012-04-12T12:58:47.753 回答
0

在尝试了 GWT 并在其所谓的“超级开发模式”中挣扎之后,我发现 JavaScript 编程并没有那么痛苦。我强迫自己学习和实践,最终我完全接受了它。JavaScript 中有很多好东西和大量的库。在我的情况下,我对人们的建议只是坚持使用例如w3schools 教程来学习 JavaScript 。

于 2014-11-13T16:00:06.060 回答