刷新优化(条件预判)

版权声明:转载注明出处 https://blog.csdn.net/qq_22794043/article/details/85336977

当需要对某些变化进行监听,用来判断是否执行某些代码时,可以进行预判,满足条件时,才派发事件,如果,派发事件之后,不需要再次监听,则可以顺带移除事件监听。

实例:

遇到个需求,主界面A图标在满足B条件后,会刷新出现在主界面,玩家等级小于80级时,如果没有满足B条件,A图标不出现在主界面,但是当玩家等级>=80级时,即使没有满足B条件,也会强制刷新出现在主界面。

所以需要对玩家等级进行事件监听

最直接的写法是对玩家等级进行监听,玩家每次升级都刷新主界面icon,那么,玩家升到80级时,如果没有用满足B条件,也会强制刷新主界面ICON ,显示A图标。

这么做,虽然需求解决了,但是会造成一些列问题,因为刷新主界icon涉及到大片的代码,完全没有必要因为一个不一定满足的条件去执行整个模块的代码。比如,频繁刷新,影响游戏流畅度,事件监听后没有及时移除,以及不必要的刷新和监听(玩家等级达到80级以后,执行1次之后,A图标已经显示在主界面了,玩家以后升级,完全没必要再次刷新主界面icon,也没必要再进行监听)

比较好的做好是进行预判,先判断玩家升级后,主界面icon是否会从隐藏刷新为显示,若是,才派发事件刷新主界面,并在刷新之后移除当前事件的监听;若否,则不派发事件

若有其他类似的需求,但是刷新后仍然有必要监听的,则可以选择不移除事件,仅进行预判

猜你喜欢

转载自blog.csdn.net/qq_22794043/article/details/85336977