我们的应用程序随着时间的推移开发了许多大型GWT模块。 架构是Servlets / JSP和GWT。
我在这里简化。
Link1.jsp
包含Link1 GWT module
Link2.jsp
包含Link2 Gwt module
Link3.jsp
包含Link3 GWT module
。
以上3个jsps都相同,即包含相同的页眉和页脚。 只有正在根据GWT模块改变主体。
现在,我们正在尝试在用户点击上述链接时提高性能。
当用户单击Link1.jsp
时,请求将发送到服务器和响应
回来 500-700ms 。(我们在印度,因此延迟问题)
用户抱怨每次链接点击都会导致应用程序运行缓慢。
因此,我们正在尝试以下方面:
由于所有的jsps完全相同,只有身体在变化,所以我们决定不这样做
为上述链接制作default href request
,我们正在尝试加载不同的链接
GWT模块基于使用JQuery的点击链接。
答案 0 :(得分:1)
我刚才问过answer这个问题。基本上,使用xsiframe
链接器编译模块,并使用dinamically生成的<script>
标记加载模块:
$("#clickMe").click(function() {
$('body').append($("<script src=foo/foo.nocache.js />"));
}
试图找出你需要这种架构的原因,IMO可能你正在尝试一种错误的解决方案。
如果您的所有应用都基于GWT模块,为什么要引入外部JavaScript库?
GWT有自己的机制来面对加速初始加载的问题。我认为你应该创建一个super-gwt模块,其中包含你的应用程序中的所有子模块。
EntryPoint
,负责处理您的jsp中的链接。可能我会将gwtquery用于该模块,但这取决于您。 EntryPoint
而是RunAsyncCallback
。这种解决方案的优点很多。你将拥有一个非常快速加载的应用程序:
GWT-2.5.1中减少js大小的另一个选项是:
<set-property name="compiler.stackMode" value="strip"/>
<inherits name="com.google.gwt.precompress.Precompress"/>
-XenableClosureCompiler
-XdisableClassMetadata
-XdisableCastChecking
-XfragmentCount 20