您如何使用 gwt 管理静态内容/页面?

Posted

技术标签:

【中文标题】您如何使用 gwt 管理静态内容/页面?【英文标题】:How do you manage static contents/pages with gwt? 【发布时间】:2011-05-04 11:28:36 【问题描述】:

我一直在使用 Django 和 GAE/Python,最近我一直在考虑切换到 GAE/J 和 GWT。我的问题是

1) 有没有办法做类似于 Django 模板系统的分层模板?

2) 一般而言,您如何使用/连同 GWT 来管理静态内容?

我已经挖了很多,但我一直没能找到令人满意的东西。这是可能解决方案的摘要(我不知道我对它们的结论是否准确,因为我对 java 技术不太熟悉。)

a) 使用各种 java 框架/模板引擎(Spring、FreeMarker、StringTemplate、Velocity 等),但是否可以将这些与 GWT 混合使用?

b) 将 Django 与 Jyphon 一起使用...但是我并没有真正使用 GWT+servlet 对吗? (并且丢失了 GWT RPC 之类的东西?)

c) 直接使用 JSP ...但似乎没有分层模板。当我键入此内容时,我进行了一些搜索,其中一些引用了 Tile (http://***.com/questions/490390/jsp-template-inheritance) 是否适用于 GWT?

d) 使用 GWT UiBinder。根据开发指南的描述,这似乎正是我所需要的,但我看到的示例很小,它似乎最适合与页面相对的小部件布局。而且使用UiBinder意味着页面还是js生成的吧? (不可抓取等?)

同样,上面的一些结论可能是错误的,因为我是服务器端 java 技术的新手。如有不准确之处请指正。

【问题讨论】:

这篇帖子***.com/questions/1085898/…为我提供了很多相关信息。一个特别的注意事项是 GWT 客户端可以与 Python 后端一起使用。 【参考方案1】:

对于模板尝试 Sitemesh - 非常易于设置和使用。我目前正在使用 Spring/Sitemesh/GWT 在 GAE 上运行应用程序。我选择使用 java 的唯一原因是 GWT-RPC 是为它编写的。在 GAE 上使用 Java 的最大问题是冷启动问题:read this post 这实际上是一个巨大的障碍,所以在迁移到 Java 之前要三思。

【讨论】:

嗯,Spring 对于 GAE 上的冷启动来说非常重要,所以如果你使用 Java,你可能会考虑使用其他东西(例如 Guice)。 我认为这个冷启动问题可能不仅限于 GAE/J。我在 GAE/Python 中也遇到过类似的延迟,虽然没有那么严重(大约 2~3 秒)。在 Python 案例中,这是我的 Django 框架的启动。 不管你用什么框架,只要是Java,冷启动的时间是不能接受的。即使是 5 秒的等待也足以将用户拒之门外,所以目前最好的方法是使用 python。我链接的帖子讨论了这个问题,包括“保留”实例和“热身挂钩”的未来。 顺便说一句,目前,我已经将我的应用程序设置为用户将访问的第一个页面是静态页面,它会触发对后端的异步调用以启动应用程序(如果用户从搜索结果访问应用程序,我也使用 cron 作业来做同样的事情,这会将他带到非静态内容)。但这是一个 hack,我对此感到满意的原因是我计划在明年初推出完整的应用程序 - 到那时我希望问题得到解决,或者至少改进。

以上是关于您如何使用 gwt 管理静态内容/页面?的主要内容,如果未能解决你的问题,请参考以下文章

使用DOM.removeChild()删除元素后,如何使用GWT添加元素?

使用 gwt dto 时如何避免使用异步类?

打开新页面,反序列化 GWT 中的对象

如何集成 Spring Security 和 GWT?

如何将 CMS 页面的内容拉入静态块?

您如何在不同的项目中将 JPA 对象与 GWT 一起使用?