2010-05-25 101 views
2

我必须使用GWT制作一个Web应用程序。该项目有一个核心模块,将公开一组apis以供其他应用程序使用;这些应用程序中的每一个都不相关。每个应该被加载在一个单独的iframe中。gwt单独模块无代码共享

我的想法是收集核心到core.js和每个应用程序必须有自己的app1.js app2.js等等...

应用1

script type="text/javascript" src="core.js" ></script> 
script type="text/javascript" src="app1.js" ></script> 

这个设计中,由于浏览器缓存,每个应用程序只加载app.js应该更小〜20kb的大小。

制作核心模块非常简单,但应用程序存在问题。原因在于编译后,每个应用程序都包含整个GWT库 - 这大大增加了完整webapp的下载大小。

任何人都可以提出一种方法来解决这个问题?我已经检查过类似的问题,但没有找到一个简单的解决问题的工作答案。

+0

没有答案???? – 2010-05-26 03:41:20

回答

4

这是无法完成的。

GWT旨在成为一个整体编译。它将采用所有的java代码,假设除了提供给它的代码之外,没有其他代码存在,然后生成优化的javascript代码。这样做的话,它只会编译你的程序实际使用的标准GWT库的一部分。

由于GWT的工作方式,其在同一页面上包含多个GWT模块总是效率低下。

相反,这里是我推荐 -

  1. 有每一个应用模块GWT,每页一个也没有。并且将两个模块放在同一页上肯定是不对的
  2. 在模块之间共享java代码,而不是javascript。这意味着你的共享库永远不会编译为javascript
+0

嗯..这几乎排除了当时项目使用gwt。即使我共享java代码,核心gwt lib仍应包含/编译与每个应用程序 - 这显然是一种浪费。谢谢你的答案 – 2010-05-26 07:01:26