繁体   English   中英

Java原教旨主义者的Web客户端开发技术

[英]Web client development technology for java fundamentalist

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

Java applet对于我来说似乎很完美,但是根据一些谣言,这不是一个真正可持续的解决方案。 我应该看看JavaFX吗? GWT? 还有其他可能性吗?

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

使用Java Applets,Swing和Hessian,您可以在业务应用程序中获得无与伦比的性能。 Hessian是一种非常快速的二进制Web服务协议。 使用JavaScript,通常只能使用文本编码的Web服务协议(例如Json)和各种基于XML的协议。 与二进制协议相比,基于文本的协议会占用大量CPU,内存和带宽-而且它们根本无法为您提供任何优势。

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

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

但是,如果您真正需要的不是标准的applet所能提供的功能,而是Web Start可能是解决方案。 有点像带有签名或未签名应用程序的旧ActiveX,它具有额外的特权-通过被sun签名或询问用户。 这将允许您使用JOGL或3d场景图形引擎。

您非常适合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等),浏览器和Java SE(桌面版本)一起使用而构建的。

我认为JavaFX作为基于Java的RIA技术看起来非常有前途。 不过这是最前沿的。 Mac OS X和Linux版本仅提供预览。 已经宣布了对移动和其他设备的支持,但尚未宣布支持AFAIK。

Vaadin也将是合适的,即使对于新组件开发,也完全不需要Javascript或HTML。 页面布局是使用布局管理器(如Swing)完成的。 新组件可以由现有组件组成(再次类似于Swing),也可以使用GWT从头开始编写(相当简单,纯Java)。

可以合理选择包含核心框架中未包含的某些功能的附加组件。

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

布局也相当“繁重”,这意味着Vaadin网站可能会显得有些呆滞。 以我的经验,这种感觉仍然比某些较重的JSF框架要好。

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

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

您也可以考虑Wicket 这具有类似的基于组件的方法,但是使用简单的HTML片段定义了组件,这导致DOM轻得多(因此浏览器性能更好),并且对外观的控制更好。 Wicket的学习曲线较陡。

在尝试了GWT并尝试使用其所谓的“超级开发模式”后,我发现JavaScript编程并不是那么痛苦。 我强迫自己学习和练习,终于完全采用了它。 JavaScript和许多库中有许多不错的东西。 对于我的情况,我的建议是仅坚持使用w3schools教程学习JavaScript。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM