Допустим, у нас есть поток активности для пользователя X, что-то вроде Facebook. Каждое действие может быть прокомментировано, и такой комментарий «поднимает» верхнюю часть активности в потоке, то есть активность теперь появляется в потоке с датой / временем его последнего комментария.
Переходя от идеи к реализации, каждые несколько минут пользовательский браузер опрашивает новые действия и показывает их в верхней части списка действий, представленных пользователю.
Теперь, из-за "неровностей", элементы деятельности могут легко переупорядочиваться. Как следствие, может произойти следующее:
До обновления
Item 1
Item 2
Item 3
Item 4
После обновления
Item 3
------
Item 1
Item 2
Item 3
Item 4
Это потому, что я опрашиваю элементы активности, которые младше, чем последний элемент в списке. Я, конечно, мог бы удалить Item 3 из «старого» списка, но если будет много «неровностей», пользователь может легко потеряться в происходящем. Более того, в крайнем случае, когда все старые элементы становятся «натянутыми», все новые (опрошенные / загруженные) фактически являются старыми, просто в другом порядке. В этом случае пользователь может быть легко озадачен, почему количество видимых элементов активности не увеличилось.
Есть ли хорошее решение этой проблемы?