0

我正在构建一个与 Facebook 时间线功能非常相似的 HTML 列表。该列表最多包含 100 个项目,因此性能不是必需的。

然而,与 Facebook 的时间线不同,我的列表会非常动态。例如,不同的事件是实时到达的,并且取决于时间戳,可能会被添加到列表中,插入(我不能保证新事件一定会按时间顺序到达)甚至被删除。最重要的是,动画更新列表(添加/插入/删除)也会很好,但这是一个单独的问题。

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

谢谢。

4

2 回答 2

2

正如另一个答案中所建议的,data-time在每个元素上都有一个属性。当新数据到达时,找到data().time小于新时间的第一个元素。如果存在这样的元素,则使用element.before(newElement),否则使用container.append(newElement)。这样列表将保持排序。

插图:http: //jsfiddle.net/JXLGR/

于 2013-08-19T21:47:26.577 回答
0

There is a nice jquery function for that here. You could implement a data-property on your html element:

<div data-time="1203812823873"></div>

Then you can actually call the function like this something like this:

$(".elements").sortElements(function(aElement0, aElement1) {

   return aElement0.data("time") - aElement1.data("time");

})
于 2013-08-19T21:24:06.900 回答