Javascript 根据实时更新维护排序列表的最佳策略
我正在构建一个HTML列表,它非常类似于Facebooks的时间线功能。该列表最多包含100项,因此性能不是要求 然而,与Facebook的时间表不同,我的列表将是动态的。例如,不同的事件是实时到达的,并且取决于时间戳,可能会在列表中预先添加、插入(我不能保证新事件一定会按时间顺序到达)甚至删除。除此之外,还可以为列表的更新(添加/插入/删除)设置动画,但这是一个单独的问题 我想知道,一旦我用初始数据建立了列表,维护列表(当然按时间排序)的最佳策略是什么Javascript 根据实时更新维护排序列表的最佳策略,javascript,algorithm,list,sorting,facebook-timeline,Javascript,Algorithm,List,Sorting,Facebook Timeline,我正在构建一个HTML列表,它非常类似于Facebooks的时间线功能。该列表最多包含100项,因此性能不是要求 然而,与Facebook的时间表不同,我的列表将是动态的。例如,不同的事件是实时到达的,并且取决于时间戳,可能会在列表中预先添加、插入(我不能保证新事件一定会按时间顺序到达)甚至删除。除此之外,还可以为列表的更新(添加/插入/删除)设置动画,但这是一个单独的问题 我想知道,一旦我用初始数据建立了列表,维护列表(当然按时间排序)的最佳策略是什么 谢谢 有一个很好的jquery函数。您可
谢谢 有一个很好的jquery函数。您可以在html元素上实现数据属性:
<div data-time="1203812823873"></div>
正如另一个答案中所建议的,在每个元素上都有一个
数据时间
属性。当新数据到达时,找到data().时间小于新时间的第一个元素。如果存在这样的元素,请使用element.before(newElement)
,否则使用container.append(newElement)
。这样列表将保持排序
插图:好极了!我不知道sortElements插件:)谢谢你的动画提示。我确实弄明白了插入/删除的逻辑。
$(".elements").sortElements(function(aElement0, aElement1) {
return aElement0.data("time") - aElement1.data("time");
})