首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 一个只十条记录的菜单。采用递归为何要花天酒12秒多的时间。 [无满意答案结贴,结贴人:cmj15924197627118]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • cmj15924197627118
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 揭帖率:
    发表于:2008-05-15 12:58:55 楼主
    一个只十条记录的菜单。采用递归为何要花天酒12秒多的时间。太慢了。
    代码如下:
      private void getMenu(long code, UserSession us, MenuItem pntItem)
        {
            hzzykj.sys.impl.SysManagerPrx sysManager = us.getSysManagerIF();
            hzzykj.sys.stSysMenu[] menu;
            hzzykj.global.emResult ret = sysManager.menuGetChildByCode(code, out menu);//根据code获得子菜单个数
            try
            {
                if (ret == hzzykj.global.emResult.retSucceed)
                {
                    for (int i = 0; i < menu.Length; i++)
                    {
                        MenuItem menuItem = new MenuItem();
                        hzzykj.sys.stSysMenu m = menu[i];
                        menuItem.Text = m.menuName;
                        menuItem.NavigateUrl = m.menuUrl;
                        menuItem.Target = "right";
                        if (code != 0)
                        {
                            menuItem.ImageUrl = m.menuImageUrl;
                        }
                        if (pntItem == null)
                        {
                            Menu1.Items.Add(menuItem);
                        }
                        else
                        {
                            pntItem.ChildItems.Add(menuItem);
                        }
                        getMenu(m.menuCode, us, menuItem);
                    }
                }
            }
            catch (Ice.Exception ex)
            {
                Response.Write(" <script language=javascript>location.href='noLinkServer.htm' </script>");
                return;
            }
        }
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • virusplayer
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-15 13:01:081楼 得分:0
    建议写入XML文件,然后将XML版定menu
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jinjazz
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 5

    发表于:2008-05-15 13:01:482楼 得分:0
    设断点调试或者用console输出整个过程
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • IT_zen
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-15 13:02:573楼 得分:0
    去掉try
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • cmj15924197627118
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-15 13:04:084楼 得分:0
    跟try没关系吧。。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • job_2006
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-15 13:04:445楼 得分:0
    MenuItem menuItem = null;
    for (int i = 0; i  < menu.Length; i++)
                    {
                        menuItem = new MenuItem();
                        hzzykj.sys.stSysMenu m = menu[i];
    }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • dengchenlu
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-15 13:11:316楼 得分:0
    学习
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • cmj15924197627118
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-15 13:14:147楼 得分:0
    按楼上做的。这样如此啊。。10条记录递归完。还是要12秒多。。。有没有人以前也碰到过?????
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • cmj15924197627118
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-15 13:26:408楼 得分:0
    MenuItem menuItem = null;
    for (int i = 0; i  < menu.Length; i++) 
                    { 
                        menuItem = new MenuItem();
                        hzzykj.sys.stSysMenu m = menu[i]; 
    }
    这种做法倒是快了一秒钟。。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • skyaspnet
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-15 13:27:449楼 得分:0
    C# code
    for (int i = 0; i < menu.Length; i++)


    这一句改为:

    C# code
    int count = menu.Length;for (int i = 0; i < count; i++)


    试一下吧
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • job_2006
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-15 13:35:5410楼 得分:0
    hzzykj.sys.impl.SysManagerPrx sysManager = us.getSysManagerIF();
            hzzykj.sys.stSysMenu[] menu;
            hzzykj.global.emResult ret = sysManager.menuGetChildByCode(code, out menu);//根据code获得子菜单个数
    这些是不是可以考虑放在递归外面去
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • cmj15924197627118
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-15 13:39:0911楼 得分:0
    网站速度整体也很慢。。想不明白到底是什么原因!苦啊
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • cmj15924197627118
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-05-15 13:42:5812楼 得分:0
    每次都要调用sysManager.menuGetChildByCode(code, out menu)来返回CODE下的子菜单啊。不能放到递归外啊
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved