Setiap item diberi pos (nomor JavaScript, jadi float presisi ganda). Kemudian, mereka dirender dengan mengurutkan berdasarkan pos .
Ketika item baru ditambahkan, itu adalah pos didasarkan pada di mana dalam daftar itu:
- daftar terbawah - maksimum
possaat ini dalam daftar + buffer (saya pikir1024digunakan) - daftar teratas - minimum
possaat ini dalam daftar dibagi dua - daftar tengah - rata-rata
posdari dua item yang berdekatan
Opsi tengah akan diberikan oleh klien; bagian atas/bawah dapat diberikan oleh klien atau diteruskan ke server sebagai string "top" atau "bottom" dalam hal ini server akan menjalankan logika.
Di server, setelah menetapkan pos ke item baru seperti yang ditunjukkan di atas, item diperiksa terhadap tetangga terdekatnya untuk kedekatan - jika jaraknya kurang dari minimum (.01 digunakan, saya percaya), mereka tersebar (berpotensi mengalir ke peningkatan pos dari seluruh daftar).
Menurut saya ini bukan cara yang ideal, tapi begitulah cara Trello melakukannya.