Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 根据实时更新维护排序列表的最佳策略_Javascript_Algorithm_List_Sorting_Facebook Timeline - Fatal编程技术网

Javascript 根据实时更新维护排序列表的最佳策略

Javascript 根据实时更新维护排序列表的最佳策略,javascript,algorithm,list,sorting,facebook-timeline,Javascript,Algorithm,List,Sorting,Facebook Timeline,我正在构建一个HTML列表,它非常类似于Facebooks的时间线功能。该列表最多包含100项,因此性能不是要求 然而,与Facebook的时间表不同,我的列表将是动态的。例如,不同的事件是实时到达的,并且取决于时间戳,可能会在列表中预先添加、插入(我不能保证新事件一定会按时间顺序到达)甚至删除。除此之外,还可以为列表的更新(添加/插入/删除)设置动画,但这是一个单独的问题 我想知道,一旦我用初始数据建立了列表,维护列表(当然按时间排序)的最佳策略是什么 谢谢 有一个很好的jquery函数。您可

我正在构建一个HTML列表,它非常类似于Facebooks的时间线功能。该列表最多包含100项,因此性能不是要求

然而,与Facebook的时间表不同,我的列表将是动态的。例如,不同的事件是实时到达的,并且取决于时间戳,可能会在列表中预先添加、插入(我不能保证新事件一定会按时间顺序到达)甚至删除。除此之外,还可以为列表的更新(添加/插入/删除)设置动画,但这是一个单独的问题

我想知道,一旦我用初始数据建立了列表,维护列表(当然按时间排序)的最佳策略是什么


谢谢

有一个很好的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");

})