2013-08-19 1 views
0

Я создаю список HTML, который очень похож на функцию временной шкалы Facebook. Список будет содержать не более 100 элементов, поэтому производительность не является обязательным требованием.Лучшая стратегия для ведения отсортированного списка с учетом обновлений в реальном времени

В отличие от временной шкалы Facebook, мой список будет довольно динамичным. Например, различные события поступают в реальном времени и в зависимости от отметки времени, могут быть добавлены в список, вставлены (я не могу гарантировать, что новые события обязательно будут поступать во временном порядке) и даже удалены. Кроме того, было бы неплохо обновить список (add/inser/remove), но это отдельная проблема.

Интересно, какая лучшая стратегия для поддержания списка (отсортировано по времени, конечно), как только я построил его с исходными данными?

Спасибо.

ответ

0

Существует хорошая функция jquery для этого here. Вы могли бы реализовать данные-свойство на вашем HTML элемента:

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

Тогда вы можете вызвать функцию вроде этого что-то вроде этого:

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

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

}) 
+0

Отлично! Я не знал о плагине sortElements :) –

2

Как предложено в другой ответ, есть data-time недвижимость на каждый элемент. Когда появятся новые данные, найдите первый элемент, который data().time меньше нового времени. Если есть такой элемент, используйте element.before(newElement), в противном случае container.append(newElement). Таким образом, список будет отсортирован.

http://jsfiddle.net/JXLGR/

+0

Спасибо за подсказку для анимации. Я выяснил логику вставки/удаления. –

 Смежные вопросы

  • Нет связанных вопросов^_^