我一直在阅读有关GWT的一系列“最高投票”问题。这些问题中有几个是关于GWT的陷阱或问题。
你们中的大多数人是否认为GWT存在一些GWT 2.0尚未解决的问题-这会使您倾向于建议对新项目使用更简单的框架?
在某种程度上,GWT难道不应该面向未来吗(因为您不必担心GWT在各个发行版之间都会发生巨大变化,并且由于它得到了Google的支持)?
我意识到,这个问题的答案在很大程度上取决于您想做什么或想做什么。我从启动一个最终将被数百万用户使用的新Web应用程序的角度来看待这个问题。
让我们从我能想到的所有权衡开始:
搜索引擎索引的问题 -恕我直言,这应该是使用GWT或一般纯JS Web应用程序的最大缺点。由于内容,布局和所有内容都是使用JS“即时”创建的,因此搜索引擎只会看到一个非常短的HTML页面,就是这样-您必须自己来解决这一问题(例如,使用 Cloaking) 。Google终于 开始致力于解决此问题的方法,但是它对我似乎并不有吸引力。
更新: Google
终于解决了这个问题。但是,我将权衡取舍,因为与其他框架相比,使应用程序可爬网仍然需要更多的精力。至少现在我们有一个“标准”可以遵循,而不必使用一些可疑的技术(例如伪装)。
很容易(特别是对于GWT的初学者, 特别是 当这个人来自HTML / JS背景-没有太多的面向对象的经验时)很容易“哇,这些“对象”的东西太酷了,让我把所有<div>
放入单独的对象中,这将使代码变得更加简洁。” 当然,我过分夸大了,但是您明白了—很容易想象,一个没有经验的程序员可以在一个单元的每个单元中放一个成熟的程序Widget
,然后……浪费了大量的时间想知道为什么应用程序感觉呆滞;) TL;博士:很容易在GWT初学者写在什么文件/样本/常理线似乎代码,以使他们的应用程序“bloaty”)建议*Handlers``FlexTable
*
这就是我能想到的所有折衷方案-如果有人想添加一些内容,请添加注释。
现在获取优势。我将跳过一些类似的国际化,免费的跨浏览器兼容性,易于与其他Google库集成的等等,因为它们显而易见且易于掌握。我将着重于强调较少但仍然非常重要的功能:
因此它 可以 优化这样的内容:
public class ShapeExample implements EntryPoint {
private static final double SIDE_LEN_SMALL = 2;
private final Shape shape = new SmallSquare();
public static abstract class Shape {
public abstract double getArea();
}
public static abstract class Square extends Shape {
public double getArea() { return getSideLength() * getSideLength(); }
public abstract double getSideLength();
}
public static class SmallSquare extends Square {
public double getSideLength() { return SIDE_LEN_SMALL; }
}
public void onModuleLoad() {
Shape shape = getShape();
Window.alert("Area is " + shape.getArea());
}
private Shape getShape() { return shape; }
}
..为此:
public class ShapeExample implements EntryPoint {
public void onModuleLoad() {
Window.alert("Area is 4.0");
}
}
然后对此进行混淆并最小化。此外,这种方式可以使生成的文件通过gzip更可压缩。
根据您的经验和/或偏好,以下内容可能是一个优势(对我来说,但这有时是PITA;))或不是:
SuggestBox
有很多地方,你可以用自己的覆盖默认行为-你可以指定一个不同的方式来显示的建议(SuggestBox.SuggestionDisplay
),触发一个自定义操作,当用户选择一个建议(SuggestBox.SuggestionCallback
),或者只是提供自定义SuggestOracle
用于供给SuggestBox
与Suggestion
小号…最重要的是-尝试使用GWT,您很可能会喜欢它,并且再也不想用纯JavaScript编写了;)
问题内容: 我一直在阅读有关GWT的一系列“最高投票”问题。这些问题中有几个是关于GWT的陷阱或问题。 你们中的大多数人是否认为GWT存在一些GWT 2.0尚未解决的问题-这会使您倾向于建议对新项目使用更简单的框架? 在某种程度上,GWT难道不应该面向未来吗(因为您不必担心GWT在各个发行版之间都会发生急剧变化,并且由于它得到了Google的支持)? 我意识到这个问题的答案在很大程度上取决于您想做
1、 全面兼容手动埋点功能,基础性能更佳 无埋点技术是手动埋点的升级,因此从技术层面就决定了无埋点可以支持手动埋点的所有统计功能。包括但不限于:基础PV/UV类指标的统计,版本、终端、地域分析、事件、留存、漏斗等。所以,也支持直接将无埋点SDK当做手动埋点SDK来使用。 此外基于无埋点技术特质,进一步优化了基础统计性能 (1)页面智能全埋点 手动埋点SDK需逐一添加每一个希望统计的页面,工作繁琐,
问题内容: 正在考虑使用Java创建自己的网站,并试图决定使用哪种框架。但是,快速搜索Java框架会返回50多种选择! 我的网站只是出于我自己的兴趣,一开始便会对其进行构建,但是,如果它变得流行,那么它具有一定的可伸缩性,或者至少能够为此进行重新设计,将是一件好事。 较流行的框架之间的主要区别是什么?在某些情况下是否有一个明显优于其他情况?例如,高流量的企业应用程序与低流量的小型应用程序。我也想知
我正在使用Java来创建硒测试用例。我的系统基于彼此连接的 Portlet。我正在使用“选择框架”命令来选择门户let。 我尝试了很多东西,但似乎它不是这样工作的: 任何人都可以帮我吗?
本文向大家介绍微服务架构的优点和缺点是什么?相关面试题,主要包含被问及微服务架构的优点和缺点是什么?时的应答技巧和注意事项,需要的朋友参考一下 微服务架构的优点 微服务架构的缺点 可以自由使用不同的技术 增加故障排除的难度 每个微服务都专注于单一功能 由于远程调用而导致延迟增加 支持单个可部署单元 增加配置和其他操作的工作量 允许软件的持续发布 难以维持处理的安全性 可确保每项服务的安全性 很难跟
本文向大家介绍props.children.map和js的map有什么区别?为什么优先选择react的?相关面试题,主要包含被问及props.children.map和js的map有什么区别?为什么优先选择react的?时的应答技巧和注意事项,需要的朋友参考一下 React.Children.map 能够处理未知数据类型,即使 React.children 是 null 和 undefined 也