论坛首页 Web前端技术论坛

解决gwt性能问题

浏览 4720 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-10-24  
GWT
   最近在做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加入如下代码
<inherits name="com.syct.kiosks.booking.Booking"/>
   发表时间:2008-10-24  
楼主能在详细说下吗,感觉挺有意思!
0 请登录后投票
   发表时间:2008-10-27  
应该可以明白吧,还有什么不明白的
0 请登录后投票
   发表时间:2008-11-27  
参见一下GWT官方网站的这篇文章,还有更进一步提高性能的可能

http://googlewebtoolkit.blogspot.com/2008/11/improving-performance-with-on-demand.html
0 请登录后投票
   发表时间:2008-11-28   最后修改:2008-11-28
楼主的意思是让index这个模块继承a,b,c,d这几个模块吗?还是其他的继承顺序?
还有关于楼主说的a,b,c,d作为组件使用,到底是如何对待的?难道是把每个模块的根页面封装一下作为组件吗?
希望楼主好好讲讲,这里先谢谢了!
0 请登录后投票
   发表时间:2008-12-01  
楼主的意思是让index这个模块继承a,b,c,d这几个模块吗?还是其他的继承顺序?
还有关于楼主说的a,b,c,d作为组件使用,到底是如何对待的?难道是把每个模块的根页面封装一下作为组件吗?
希望楼主好好讲讲,这里先谢谢了!
crazywan 写道

楼主的意思是让index这个模块继承a,b,c,d这几个模块吗?还是其他的继承顺序? 还有关于楼主说的a,b,c,d作为组件使用,到底是如何对待的?难道是把每个模块的根页面封装一下作为组件吗? 希望楼主好好讲讲,这里先谢谢了!

‘难道是把每个模块的根页面封装一下作为组件吗? ‘
---是的,大概是这样,比如a模块,结构是:
+client
+public
a.gwt.xml

把a.gwt.xml的entry-point元素删删除调,这样a模块可以当组件引入到其它模块,这里是引入到index模块。在index.gwt.xml加入<inherits name="...(你的path)a.gwt.xml"/>。这样a就是index模块的组件了!
0 请登录后投票
   发表时间:2008-12-03  
请问:拆分模块后,启动是否只编译index模块?点击进入a模块后才编译a模块?(宿主模式下)

ps:在网页状态下,工程已编辑成js,我想速度慢,应该是下载的js或者网页太大(原来发布的时候没有使用简略模式,发布的cashe.html有4M多)
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics