延迟策略

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

之前也遇到过几次这种问题,打开界面时直接进行某些操作(例如赋值)时,没有效果,但是打开界面之后,再通过点击事件或者其它事件在进行之前的操作时,又有效果了,之前遇到过一次list渲染问题设置scrollBar的value,调用calllater延迟之后,达到预期效果,还有页签的跳转动画,直接执行没有跳转动画,也没有跳转,延迟执行后,出现了预期的跳转效果,今天又一次做跳转效果,设置scrollBar的value,和前两次一样,同样是在代码中直接设置没有问题,但是之后在通过事件触发时,同样的代码,达到了预期的效果。折腾了一下午,最后又试了下延迟2秒,发现预期的效果出现了。

这时候,不能一直想代码到底是那里出问题导致没有执行,相同的代码,后面能够执行,就说明这段代码是没问题的。

这时候应该想到的是,可能是某些资源还没完全加载好,导致代码不能顺利执行,或者是代码执行之后,但是在之后又被某些代码覆盖了,或者其它原因,总结起来就是,要么是执行过早导致的没有顺利执行,要么就是执行过早导致执行的操作被覆盖。

针对执行过早,可以采用的解决方法是延迟执行,个人选择100ms,代码执行完毕,而用户又不至于在这么短的时候内看到界面变化,至于具体延迟多久合适,待优化

猜你喜欢

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