Всеки артикул получава pos (номер на JavaScript, така че плаваща точка с двойна точност). След това се изобразяват чрез сортиране по pos .
Когато се добави нов елемент, той е pos се базира на това къде в списъка се намира:
- долната част на списъка - максимална
posв момента в списъка + буфер (мисля, че1024се използва) - горе в списъка - минимална
posв момента в списъка, разделен на две - средата на списъка - средна стойност на
posот двата съседни елемента
Средният вариант ще бъде зададен от клиента; горната/долната част може да бъде присвоена от клиента или предадена на сървъра като низовете "top" или "bottom" в който случай сървърът ще изпълни логиката.
На сървъра, след присвояване на pos към новия елемент, както е показано по-горе, елементът се проверява спрямо най-близките си съседи за съседство - ако са на по-малко от минимално разстояние един от друг (.01 се използва, вярвам), те са разпръснати (потенциално каскадно в увеличаване на pos от целия списък).
Не мисля, че това е идеалният начин, но Trello го прави така.