Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns 什么科技,;要为显示板选择的体系结构_Design Patterns_Gwt_Architecture - Fatal编程技术网

Design patterns 什么科技,;要为显示板选择的体系结构

Design patterns 什么科技,;要为显示板选择的体系结构,design-patterns,gwt,architecture,Design Patterns,Gwt,Architecture,他对大家说, 事实上,我有两个问题:)我即将开始一个新的项目,它基本上是一个展示板(类似于你在机场或证券交易所看到的,但出于另一个目的)。它应该有许多文本项、价格标签和按钮供选择。整个过程应该在浏览器中运行,并反映实时变化(例如频繁更新价格和重新安排项目) 技术 首先想到的技术选择是GWT,它有助于保持低流量,并允许有针对性地更新显示区域(因为渲染发生在客户端)。然而,根据我的经验,这种选择有一些缺点:在GWT中,从静态布局移植HTML和CSS要耗时得多,因为您只能在运行时看到生成的HTML(U

他对大家说,

事实上,我有两个问题:)我即将开始一个新的项目,它基本上是一个展示板(类似于你在机场或证券交易所看到的,但出于另一个目的)。它应该有许多文本项、价格标签和按钮供选择。整个过程应该在浏览器中运行,并反映实时变化(例如频繁更新价格和重新安排项目)

技术

首先想到的技术选择是GWT,它有助于保持低流量,并允许有针对性地更新显示区域(因为渲染发生在客户端)。然而,根据我的经验,这种选择有一些缺点:在GWT中,从静态布局移植HTML和CSS要耗时得多,因为您只能在运行时看到生成的HTML(UiBinder Make稍微方便一些,但问题仍然存在),DevMode在Linux下速度非常慢,为单个部署编译排列可能需要几分钟。这一切都会导致开发时间比JSP或JSF慢得多

是否有其他技术或方法在流量方面非常低调,并且能够实时显示数据变化?如果某个价格标签改变了它在屏幕上的值或位置,我们显然不想保存整个新页面。更快的开发时间将是一种享受:)

架构

在这种情况下采用什么样的模式才是合适的。我尝试过创建一个索引对象,其中包含对其他price和item对象的引用。因此,如果价格标签的排列在屏幕上发生变化,新的价格标签到达,旧的价格标签更新,则会创建一个新的索引对象并发送给客户机。客户端知道应该更新显示并重新呈现。积极的一面是,它为您提供了许多可重用的组件(价格和项目对象),但消极的一面是,如果添加了新项目,整个屏幕的重新招标将随着更多更新的到来而变得CPU密集。索引对象和页面布局之间也没有一对一的对应关系:因此,如果设计器选择了基于表的布局,并且项目1和项目2之间有一个空行,则在不进行额外处理的情况下,无法将项目对象的索引位置映射到其在所属表上的位置

我将很快观看GWT上的一个谷歌视频中呈现的事件总线模式。有一种感觉,这也可能为正确的道路提供指导

非常感谢你的建议

更新:措辞和风格

DevMode在Linux下的速度非常慢

最近有好几个人出现了DevMode性能问题,我真的不确定这是为什么。根据我的经验,尤其是在Linux上,DevMode非常快(事实上,我目前主要使用Mac,而且速度要慢得多。)只是给你一个可比较的数字:在我的Linux机器上更改代码后重新加载官方的StockWatcher教程大约需要一秒钟。即使是我最大的项目,它在一个页面上使用了大量的小部件,重新加载时间仍然非常好

我真的很感兴趣,在这种情况下,您会看到缓慢:在浏览器中重新加载页面时,在重新启动服务器时(顺便说一句,几乎总是不必要的),在重新部署服务器端时(可以很快完成)?我绝对推荐的一件事是,使用原始的Sun/Oracle JVM而不是GCJ(这在Linux上通常是默认的),并尝试使用不同的浏览器

是否有其他技术或方法在流量方面非常低调,并且能够实时显示数据变化

是的,任何使用AJAX和JSON传输数据的东西

在这种情况下采用什么样的模式才是合适的

实际上,官方的StockWatcher教程应该与您想要做的相对类似,即它主要显示频繁更新的数据。如果你的更新不定期地到达,你可能想考虑使用彗星来减少请求的数量,但是我会开始频繁的轮询(比如StockWatcher),然后细调。

如果添加了一个新项目,整个屏幕的重新招标将随着更多更新的到来而变得占用大量CPU

UiBinder使用innerHTML而不是DOM操作来修改UI,并将其与特定于浏览器的优化相结合,因此速度可能会尽可能快。如果您关心这些更新的性能,那么GWT确实是一个非常好的选择。 如果你的UI真的变慢了,可以在中找到一些额外的指针

如果不进行其他处理,则无法将item对象的索引位置映射到其在所属表上的位置

这取决于您使用的模型。也许可以与设计器一起设计一个小部件(例如MyTable.ui.xml),然后在Java类中实现相应的逻辑(如果需要复杂的映射,则不必直接在MyTable.Java中)。如果您需要针对该映射的特定问题的解决方案,最好打开一个单独的问题

DevMode在Linux下的速度非常慢

最近有好几个人出现了DevMode性能问题,我真的不确定这是为什么。根据我的经验,尤其是在Linux上,DevMode非常快(事实上,我目前主要使用Mac,而且速度要慢得多。)只是给你一个可比较的数字:在我的Linux机器上更改代码后重新加载官方的StockWatcher教程大约需要一秒钟。即使是我最大的项目,它在一个页面上使用了大量的小部件,重新加载时间仍然非常好

我真的很感兴趣,在这种情况下,您会看到缓慢:在