POS 在 Trello API 中的实际含义是啥
Posted
技术标签:
【中文标题】POS 在 Trello API 中的实际含义是啥【英文标题】:What does the POS actually mean in the Trello APIPOS 在 Trello API 中的实际含义是什么 【发布时间】:2013-01-04 23:49:49 【问题描述】:我正在使用 dillenmeisters Trello.Net API Wrapper,每个 Card
都有一个 POS
属性。我认为这是在它所在的列表中的位置,但数字似乎是任意的,范围从 4 到 5 位数字。是否有足够的意义来理解这些足以在列表中已经存在的另外两个人之间“放置”一个新的Card
?
【问题讨论】:
【参考方案1】:编辑:
在 Trello.NET 的 0.5.9-beta1 版本中可用(在 NuGet 上):
// Ways to set the position of a card
trello.Cards.ChangePos(card, 1234)
trello.Cards.ChangePos(card, Position.Top)
trello.Cards.ChangePos(card, Position.Bottom)
我还没有深入研究 pos 的工作原理,但我认为这是一个排序顺序。如果你想在另外两张牌之间移动一张牌,你可以得到这两张牌的位置并将它们的位置相加并除以二。
例如,如果要在卡 A 和卡 B 之间插入卡 C:
-
卡 A - 位置 16
卡 B - 位置 32
卡 C - 位置 64
(16 + 32) / 2 = 24。 将卡片 C 位置设置为 24。
-
卡片 A - 位置 16
卡 C - 位置 24
卡 B - 位置 32
我认为他们这样做是为了在移动卡片时只需要更新 ONE Pos(而不是之后所有卡片的 Pos,如果他们使用没有间隙的连续 Pos,则这是必要的)。
【讨论】:
还注意到,每次创建新卡时,pos 都会精确增加 65536 (2^16)。这是随机选择的还是这里有什么意义? 如果要在卡 a 和 b 之间插入 17 张卡怎么办? 我刚刚尝试在两张卡片之间放置超过 16 张卡片。 pos 值开始输入小数。例如:77823.5、77823.25、77823.125 等。 我自己只是在调查这个问题,我发现了另一个怪癖。就像@GauravGupta 指出的那样,每张新卡都会增加 65535。因此,如果您继续在这张卡之前插入卡,那么该位置将不断减少一半,即 32767.5、16383.5、8191.5、4095.9375 等……但是,我发现当我插入一张会导致位置小于 0.1 的卡时,服务器将返回 16384 的位置(实际上是 65535 / 4)。这实际上没有任何意义,因为从技术上讲,这张卡将被放置在卡之后,因为它具有更高的价值。 另一个奇怪的是,当我刷新页面时,服务器之前设置(并接受)的位置发生了变化,就像服务器在发牌之前重新计算位置一样。因此,当 Trello 收到超过 0.1 的位置时,它似乎正在重新计算服务器端的位置以上是关于POS 在 Trello API 中的实际含义是啥的主要内容,如果未能解决你的问题,请参考以下文章