Mỗi mặt hàng được cung cấp một pos (một số JavaScript, nên float chính xác kép). Sau đó, chúng được hiển thị bằng cách sắp xếp theo pos .
Khi một mục mới được thêm vào, đó là pos dựa trên vị trí của nó trong danh sách:
- cuối danh sách -
postối đa hiện có trong danh sách + bộ đệm (tôi nghĩ1024được sử dụng) - đầu danh sách -
postối thiểu hiện đang ở trong danh sách chia đôi - giữa danh sách - trung bình của
poscủa hai mục liền kề
Tùy chọn giữa sẽ được chỉ định bởi khách hàng; trên cùng / dưới cùng có thể được chỉ định bởi máy khách hoặc được chuyển cho máy chủ dưới dạng các chuỗi "top" hoặc "bottom" trong trường hợp đó máy chủ sẽ thực hiện logic.
Trên máy chủ, sau khi gán pos đối với mặt hàng mới như được hiển thị ở trên, mặt hàng được kiểm tra so với các hàng xóm gần nhất của nó để biết độ liền kề - nếu chúng cách nhau ít hơn một khoảng cách tối thiểu (.01 được sử dụng, tôi tin rằng), chúng được trải rộng (có khả năng xếp tầng để tăng pos của toàn bộ danh sách).
Tôi không nghĩ đây là cách lý tưởng, nhưng đó là cách Trello thực hiện.