UI - 逻辑交互:一次抢占式呼叫还是许多小型即时呼叫?

问题描述 投票:0回答:1

我正在编写一个小型国际象棋游戏。我有一个棋盘,上面有一些棋子。将鼠标悬停在一块上时,我想向您展示您可以移动到的潜在位置。

我一直在考虑用户界面,我可以看到两种不同的选择:

1. 在每次操作之后进行一个大的逻辑调用,我收到棋盘的完整状态和棋子的每个可用移动,并可以从 UI 访问它。

2. 拥有棋盘的轻量级状态,并仅在特定棋子悬停时调用逻辑来计算可用的移动。

一种解决方案比另一种更好吗?它们都可以扩展吗?有标准的方法吗?

user-interface architecture system-design
1个回答
0
投票

假设它是一个标准棋盘(8x8)。确定给定棋子的所有潜在位置不应太复杂,范围从

O(1)
O(n)
(n = 棋盘的大小)。

选项 1:在每次操作后进行一次大型逻辑调用,我会收到棋盘的完整状态和棋子的每个可用移动,并可从 UI 访问它。

  • 用户可能想要点击多个棋子来查看他们的选择,每一步调用一次大调用意味着在回合开始时进行稍大的 api 调用,并且在回合的剩余时间内没有其他计算

选项 2:拥有棋盘的轻量级状态,并仅在特定棋子悬停时调用逻辑来计算可用的移动。

  • 这意味着需要许多小的 api 调用来进行计算
  • 许多 api 调用意味着对不稳定网络和更繁琐的 UI/后端的潜在敏感性。
  • 悬停时的任何缓冲可能都不是很好的用户体验

鉴于有 2 个可用选项,我的投票是 (1),因为 api 计算并不昂贵

© www.soinside.com 2019 - 2024. All rights reserved.