以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 项目启动时间的问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=79409) |
||
-- 作者:santde -- 发布时间:2015/12/30 17:23:00 -- 项目启动时间的问题 我的项目 总感觉打开项目到登陆窗口的时间有点长,经跟踪发现项目打开事件有些不正常,但是找不到原因是什么 3,表示项目启动过程:BeforeLoadOuterTable 4,表示项目启动过程:Initialize 6,表示项目启动过程:AfterOpenProject 3处的代码为 vars("DTSJ") = False e.Cancel = True 4处代码为 gs_blnLoading= True If vars("DTSJ") = True Then For Each dt As DataTable In DataTables dt.GlobalHandler.KeyDown = True dt.GlobalHandler.PrepareEdit = True \'dt.AllowCopyHeader = True dt.GlobalHandler.BeforeLoad = True dt.GlobalHandler.BeforeSaveDataRow = True dt.GlobalHandler.BeforeDeleteDataRow = True dt.GlobalHandler.BeforeAddDataRow = True dt.GlobalHandler.DoubleClick = True dt.GlobalHandler.Click = True Next End If 这前的数据时间正常就省了 3:2015-12-30 17:07:36.99319齿轮日生产计划 3:2015-12-30 17:07:36.99319齿轮日计划数据 4:2015-12-30 17:07:37.16632 3:2015-12-30 17:07:44.17439权限控制 3:2015-12-30 17:07:44.28046用户名表 2:2015-12-30 17:07:44.37353 3:2015-12-30 17:07:44.47360类别项目 2:2015-12-30 17:07:44.52163 2:2015-12-30 17:07:47.03327 2:2015-12-30 17:07:47.06629 6:2015-12-30 17:07:47.50360 问题是 3 处 已取消的所有的外部表加载事件 为啥系统还要对所有的表过一遍,均执行一次 e.Cancel = True 并且 还不一次性过完。过了一大部份然后执行后面的4事件 了 又回去执行3事件,且时间由37秒跳到了44秒,那么这7秒时间系统干什么去了,如果没有这7秒的耗时,则系统启动就快多了 问题在哪里 后面的几个表:权限控制,用户名表,类别项目都是主数据源中的表,且还是最开始就有的表,表的设置也和其它的一样 为什么这几个表是二次加载判断的,并且,时间那么慢
|
||
-- 作者:大红袍 -- 发布时间:2015/12/30 17:24:00 -- vars变量,在afterOpenProject之后才能用。
请用public变量 |
||
-- 作者:大红袍 -- 发布时间:2015/12/30 17:28:00 -- BeforeLoadOuterTable 是会循环执行的。一次只能取消一个。很正常。 |
||
-- 作者:santde -- 发布时间:2015/12/30 17:41:00 --
|
||
-- 作者:大红袍 -- 发布时间:2015/12/30 18:52:00 -- 具体不清楚,没有细心研究源码。应该是准备信息,你知道你也改不了。 |