zoukankan      html  css  js  c++  java
  • discuz!NT 3.0 优化(1)

    数据库部分:

    1)dnt_getattachmentlistbypid (效果明显)

    2)dnt_getindexforumlist (不太明显)

    3)dnt_getpostlist1 (不太明显)

    4)dnt_deleteonlineusers (效果明显)

    5)dnt_updateuseronlinestates (效果明显)

    6)dnt_gettoptopiclist (效果明显)

    文件部分:

    修改 BasePage .cs

     更新在线用户信息的时候添加这个条件,

    if (pagename.IndexOf("avatar.aspx", StringComparison.OrdinalIgnoreCase) == -1)

    变成

     // gezi 添加,/tools/avatar.aspx 是取头像的页面,这个页面不需要记录

                if (pagename.IndexOf("avatar.aspx", StringComparison.OrdinalIgnoreCase) == -1)

                {

                    //当为forumlist.aspx或forumindex.aspx,可能出现在线并发问题,这时系统会延时2秒

                    if ((pagename != "forumlist.aspx") && (pagename != "forumindex.aspx"))

                        oluserinfo = OnlineUsers.UpdateInfo(config.Passwordkey, config.Onlinetimeout);

                    else

                    {

                        try

                        {

                            oluserinfo = OnlineUsers.UpdateInfo(config.Passwordkey, config.Onlinetimeout);

                        }

                        catch

                        {

                            System.Threading.Thread.Sleep(2000);

                            oluserinfo = OnlineUsers.UpdateInfo(config.Passwordkey, config.Onlinetimeout);

                        }

                    }

                } 

    该条件表示:如果包含文件 avator.aspx (取用户头像) 则不更新用户在线信息,使 exec dnt_getonlineuser @userid , @password 的调用不再那么频繁(修改之前每次访问showtopic.aspx,每一条回复都会遍历更新所有用户的在线信息,如果有20个回复,就会遍历20次,现在只需要一次,大大减轻了因此造成的数据库的压力)

  • 相关阅读:
    无法添加sql server ER图
    我和COC
    WordPress怎样设置菜单栏旋转小图标
    VS Code怎样设置成中文
    初探 Git Submodules
    使用 rsync-deploy-action 同步 Hexo 博客到个人服务器
    Latex基本语法简记
    SQLAlchemy建立数据库模型之间的关系
    Flask的请求钩子与上下文简览
    如何将本地项目推送到Github
  • 原文地址:https://www.cnblogs.com/gezifeiyang/p/1662558.html
Copyright © 2011-2022 走看看