2013-06-28 14:25 | 题主 | ||||||||
|
请教示例应用中的“Include Module”的问题。 若Include的Module需要查询大量数据时,那么通过将被包含的模块放置在主模块的initModule中,则主模块在加载时也会一并加载被包含模块,若被包含模块内的功能或者数据,在主模块中暂时没有用到时,则会造成效率浪费,请问如何实现延迟加载的效果。例如:单击主模块内的某个按钮后才真正加载需要的模块。 |
2013-06-28 21:10 | #1 | ||||||||
|
include module好比引用一个js文件,module比引用js文件要更灵活和丰富,而且可使用服务器端功能 因此如果想实现你说的效果控制好方法就可,像单击某个按钮加载这个功能可以放在一个函数内,待需要时再调用 |
2013-06-29 23:03 | #2 | ||||||||
|
想了另外一种实现方式:设置store和grid的autoLoad属性为false,然后再适时使用Wb.load(mystore)就达到延迟加载数据的效果了。不过又发现另外一个问题,由于tree没有autoLoad属性,即使同样设置了TreeStore的autoLoad为false,数据仍然被自动加载了显示在tree中。请问是否有其他办法? |
2013-07-01 08:52 | #3 | ||||||||
|
根节点expand为false就不自动加载了 |
2013-07-01 14:41 | #4 | ||||||||
|
哦,这样啊,谢谢陈总 |
2013-07-16 21:57 | #5 | ||||||||
|
请问,怎么实现按钮点击动态加载Module呢,感激不尽。 |
2013-07-17 09:51 | #6 | ||||||||
|
有多种方法可以实现该功能: 1、点击按钮调用ajax发送参数moduleId,ajax指向的另一模块initModules中设置属性为{#moduleId#},createBody属性设置为false,如果模块含客户端脚本,即可通过ajax获取。 2、使用Parser类解析模块,参考simpleParse方法。 |
2013-07-17 11:20 | #7 | ||||||||
|
感谢陈老师,基本采用的是第一种方法,createBody属性设置为false帮了我大忙。 |
2013-07-17 13:51 | #8 | ||||||||
|
现在遇到了一个新的问题,比如我的主模块MainModule里面有一个Panel1面板,我希望加载一个SubModule到这个Panel1面板的位置,于是我在SubModule里面定义了一个Panel1面板,这个面板的id和主面板的面板id相同,可以正常加载,但是MainModule的最底下也会加载显示SubModule的内容。怎么解决呢? |
2013-07-17 15:12 | #9 | ||||||||
|
更正一下,是没有放到Panel1面板的位置,加载了一次没错,但是没有放到我希望的位置上。 |
2013-07-17 15:49 | #10 | ||||||||
|
获取返回的脚本后,Wb.decode一下就变成一个对象了,这个对象可直接添加到panel上 在新版本中可使用方法Wb.toItemId把所有所属控件id转成itemId以防止id重复冲突 WebBuilder6.8版本所有控件提供autoCreate属性,以指定生成对象表达式或实例 |