我正在使用GWT开发一个Web应用程序。我非常希望用Java编写所有内容,而不是用HTML和CSS编写任何硬编码。我也在使用GQuery(或GWTQuery),我想知道使用GWTQuery的编译时选择器是否完全不需要对任何HTML或CSS进行硬编码 - 并且具有完全硬编码应用程序的速度和性能?
答案 0 :(得分:1)
让我用几句话来解释gwt和gquery是什么。
1- GWT只是一个编译器,它为您提供了从java生成优化的javascript的工具。
2-用GWT生成的js主要用于修改DOM(除了计算,业务代码,ajax等)。
3- GWT还为您提供了一组小部件,作为DOM的抽象,因此您可以使用面板,按钮,树等代替原始HTML。我认为这就是你所说的硬编码的html。
4-但GQuery是GWT的补充。它为您提供了一组从jQuery获取并移植到java以编写更少代码的实用程序,它主要用于操作DOM(选择节点,修改,动画等),除了其他很酷的功能,比如更简单的ajax语法,安全打字,promises,json / xml数据绑定等。
说,不要以为gwt小部件抽象会让你完全忘记dom和css。稍后你需要创建自己的小部件,或者自定义当前的小部件。
我认为忘记几乎DOM的唯一方法是使用第三方小部件库,如gxt,mosaic,smart-gwt等。因为GWT小部件很难,它们旨在让设计师可以选择使用CSS轻松地设计风格。
另一方面,gwtquery根本不会帮助你忘记DOM。它旨在增强页面中的静态DOM元素,增强gwt小部件的DOM,或者基于html创建自己的DOM结构。
关于gQuery compiled选择器,它们以与动态选择器相同的方式使用:选择DOM元素,但具有更好的性能,因为编译器对它们进行了优化。我认为你误解了他们的目标,他们没有给你任何方法来消除硬编码HTML。
更新:要回答您的上一条评论,无法生成静态HTML或CSS GWT或GQUERY。它们总是生成写入.js文件的静态JAVASCRIPT代码(或根据链接器写入.html文件中的javascript标记)