最近在做gwt的项目时发现,打开第一个页面的速度非常慢,仔细研究了一下,发现项目的模块架构是这样的:
index 点击
a模块 --- 进入a模块
b模块 --- 进入b模块
c模块 --- 进入c模块
d模块 --- 进入d模块
问题就在点击进入相应模块这里,用Window.open 、Window.Location.assign等方式打开另一个页面的时候,即是从一个模块跳到另一个模块,它会初始化这个模块的所有东西,包括静态的变量、模板,造成打开一个页面要13秒。这是客户不能忍受的。如果是web的话不会出现这样的情况,也算是gwt的bug了。
解决办法:模块重组,index模块引入a、b、c、d模块,abcd当成组件使用,这样可以不修改代码结构,无缝结合。在.gwt.xml加入如下代码
index 点击
a模块 --- 进入a模块
b模块 --- 进入b模块
c模块 --- 进入c模块
d模块 --- 进入d模块
问题就在点击进入相应模块这里,用Window.open 、Window.Location.assign等方式打开另一个页面的时候,即是从一个模块跳到另一个模块,它会初始化这个模块的所有东西,包括静态的变量、模板,造成打开一个页面要13秒。这是客户不能忍受的。如果是web的话不会出现这样的情况,也算是gwt的bug了。
解决办法:模块重组,index模块引入a、b、c、d模块,abcd当成组件使用,这样可以不修改代码结构,无缝结合。在.gwt.xml加入如下代码
<inherits name="com.syct.kiosks.booking.Booking"/>