我感觉是这样的,应该是A如果出了一张牌,那么他就给服务器发送一条信息并且自己更新动画,然后服务器再发送给B,叫B更新A出牌的动画。 然后我感觉你的意思是,A、B一直不停的向服务器进行请求看有没有事件发生,如果A出了一张牌,那么A、B向服务器请求后发现状态改变了,就更新动画。 最后两点:1.我认为第一种方法比较合理一点,而且用websocket就可以实现了 2.我对你举的例子有一个疑问,出牌和更新出牌池是一个连贯的动画,为什么会出现你说的情况。如果说只是更新出牌池的数据,但动画和更新数据完全是可以分开的吧,他们谁在前谁在后也不要紧吧,因为下一次更新出牌池的数据一定是在上一次出牌动画后用户才能进行操作,才能更新出牌池~ 我个人是这样想的~
许多新手刚开始都会走上你现在这条死路,这样的做法有两个特点:1.能把人做疯(你会沉入错误/异常处理无尽深渊中);2.易炸(做出来的东西极其容易崩溃); 所以改为事件驱动型
为什么要“按频率”呢?一个事情出现是有其真正的事件驱动的,比如说服务器传来的牌的更新事件,那么你的客户端虽然是异步刷新,同时也就会继续异步刷新,即使是前边的异步刷新没有刷新完就接收到了新的信息也会接下来异步刷新最新内容(甚至你的前端框架稍微好点的话,它自动就有在 UI 更新时仅仅刷新某个状态属性的最新信息——而放弃过期的信息——的机制)。 关键是,其实并不需要什么自己假设的“按频率”这类事情。你收到消息就直接更新。而你收到消息应该是尽可能实时的、流畅的、异步的,这样就会非常自然,不需要自己写一大堆假么假事的“按频率”机制。
应该是在动画开启后中断数据接收。等动画结束再继续接收数据。 也可以在动画开启后不中断数据接收,只是把接收的数据缓存起来,先不刷新显示。等当前动画结束再刷新显示。
39,087
社区成员
5,547
社区内容
加载中
试试用AI创作助手写篇文章吧