众所周知,不了解什么时分开端每次过蓝条之后都会卡好一会,这个卡顿需求封闭公会新闻来处理
无聊去研讨了一下暴雪界面的源码相关代码都在GuildNews.lua里这是公会新闻相关的事情处理
也便是说,每次过图的时分,公会界面都会调用QueryGuildNews()从头向服务器查询一次一切公会新闻,随之而来的是一连串的“GUILD_NEWS_UPDATE”事情
这个事情具领会触发多少次尚不清楚,不过能确认的是公会新闻量越大触发次数越多我别的做了个计数器测验:我自己的库房公会(没几条信息)登陆时会触发7次大号的公会登录时触发了2486次,每次过图又会触发800-2000次不等过图前
在这里会拉取一切数据,然后更新新闻列表这个self.ScrollBox:SetDataProvider(dataProvider);会铲除翻滚列表 然后一条条从头增加,这个便是卡顿的首要来历了
也便是说,每次过图的时分游戏会重复的向公会新闻框体增加约600-1400万次数据,不卡都是怪事(我愿称之为暴雪式R星循环)
实践情况下,当你把公会新闻过滤器悉数关掉,这些事情仍然会触发,可是不会增加内容了(所以就不卡了)写了段代码把原有公会新闻框体的事情处理器替换掉,这样每秒最多处理一次公会新闻更新,多触发的会被延迟到1秒后一次性履行,这样就能毫无忌惮的翻开公会新闻了(也趁便减少了改写其他公会内容形成的资源糟蹋(微乎其微))
全国免费咨询热线:010-56125794
联系人:左经理
手机:13391904938