JQuery - удалить элементы списка на основе времени - PullRequest
3 голосов
/ 01 декабря 2009

У меня сейчас есть страница с неупорядоченным списком. Этот список изначально заполняется запросом моего БД, причем каждый элемент списка имеет отметку времени и текст. Используя javascript и AJAX, эта страница динамически обновляет неупорядоченный список каждые 10 секунд, если поступают новые данные.

Какой самый простой и эффективный способ удалить элементы списка из этого неупорядоченного списка, если элементы старше 24 часов?

Я склонен сделать следующее:

  1. В файле js загрузить все элементы списка в неупорядоченном списке в массив
  2. Во время вызова js для получения данных, если данные возвращаются, также добавьте эти элементы в массив
  3. Каждый раз, когда вызывается функция getData (), также вызывается функция removeData (), которая удаляет все элементы старше 24 часов.

Кроме того, у меня возникли проблемы при попытке найти правильный способ добавления элементов списка в массив javascript. Вот код, который я пытался добавить все элементы списка в массив:

  var list = new Array();
  $(".listname").each(function (i){
    list.push($(this));
  });

чтобы удалить элементы списка из массива, я ожидаю использовать:

list.pop();

Ответы [ 2 ]

1 голос
/ 01 декабря 2009

Почему бы не отсортировать массив по дате (сначала самым старым), а затем использовать list.shift()? Это удалит первый элемент в массиве, как описано здесь .

0 голосов
/ 01 декабря 2009

Ваш подход к expring элементам при запуске getData кажется здравым. Вы должны добавить в конец массива с помощью push, но pop просто вытягивает элементы из конца массива, что, вероятно, не в том порядке. Массивы Javascript действуют как стеки, а не как очереди. Возможно, вы захотите добавить remove к прототипу массива javascript, как предлагается здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...