Elk item krijgt een pos (een JavaScript-nummer, dus dubbele precisie float). Vervolgens worden ze weergegeven door te sorteren op pos .
Wanneer een nieuw item wordt toegevoegd, is dit pos is gebaseerd op waar in de lijst het is:
- onderaan de lijst - maximum
posmomenteel in de lijst + een buffer (ik denk1024wordt gebruikt) - bovenaan de lijst - minimaal
posmomenteel in de lijst gedeeld door twee - midden van lijst - gemiddelde van
posvan de twee aangrenzende items
De middelste optie zou worden toegewezen door de klant; de top/bottom kan worden toegewezen door de client of worden doorgegeven aan de server als de strings "top" of "bottom" in dat geval zal de server de logica uitvoeren.
Op de server, na het toewijzen van de pos aan het nieuwe item, zoals hierboven weergegeven, wordt het item vergeleken met zijn naaste buren op aangrenzendheid - als ze minder dan een minimale afstand van elkaar verwijderd zijn (.01 wordt gebruikt, geloof ik), zijn ze verspreid (mogelijk trapsgewijs in het verhogen van de pos van de hele lijst).
Ik denk niet dat dit de ideale manier is, maar het is hoe Trello het doet.