GWT懒惰加载

时间:2009-12-20 06:13:01

标签: gwt

我想开发一个GWT应用程序。该应用程序包含8个模块,所有模块都在一个页面中运行。

我有顶部所有7个选项的链接。

当页面加载时,我只想加载和显示主页内容。

只有当用户点击菜单选项时,才会加载菜单内容。

任何人都可以提出实现这一目标的最佳方法。

3 个答案:

答案 0 :(得分:6)

这已在GWT 2.0中得到解决......首先,您将删除每个模块的单独入口点 - 因为它们都在同一页面上,您每页只需要一个入口点。

然后你可以在你认为可以拆分的每个点上使用GWT.runAsync()方法......它会自动将代码切割成必要时下载的块。

查看文档here

答案 1 :(得分:0)

AFAIK,延迟加载(或可插拔)模块无法在GWT中完成。部分原因是由于GWT编译器的工作方式 - 它喜欢导入它将要看到的所有代码,然后尽可能恶性地进行优化和修剪(使得生成的JS文件尽可能小并且尽可能领先) 。如果它无法预先访问所有源代码,则可能会进行优化以破坏可插拔模块(特别是因为“核心”应用程序中的任何内容都不能引用延迟加载的模块需要正常工作的类 - GWT编译器将修剪核心模块中的那些“未使用”类。

此stackoverflow question from May 09询问相同的事情并得到相同的答案 - 无法完成。

大约六个月前,我搜索了这个问题的答案,因为我真的想做我认为你要求的事情。从来没有找到解决方案。

(我没有使用过GWT 2.0 - 它可能已经解决了这个问题)

答案 2 :(得分:0)

感谢您的回答。你是对的,整个Javascript代码下载。

但必须有一种方式,比如说模块是View Profile。只有当用户单击视图配置文件链接时,才需要创建与显示我的配置文件相关的小部件。这是不可能的。