2009-12-01 56 views
3

我目前有一個包含無序列表的頁面。該列表最初是通過查詢我的db來填充的,每個列表項都有一個時間戳和文本。使用javascript和AJAX,如果新數據已經進入,此頁面每隔10秒動態更新無序列表。jQuery - 刪除基於時間的列表項目

如果項目大於24,則從此無序列表中刪除列表項目的最簡單和最有效的方法是什麼小時?

我的傾向是做到以下幾點:

  1. 在js文件,在無序列表中的所有列表項加載到一個數組
  2. 在JS調用來獲得數據,如果數據回來,將這些項目添加到陣列中
  3. 每次調用getData()函數時,還要調用removeData()函數,該函數刪除24小時以前的所有項目。

另外,我有問題試圖找出正確的方式來添加列表項到JavaScript數組。這裏是我一直在嘗試將所有列表項到一個數組的代碼:

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

從數組中刪除列表中的項目,我希望用:

list.pop(); 
+0

您可以向SQL中添加一個WHERE子句來篩選出大於24小時的項目嗎? –

+0

在初始加載時,SQL會過濾24小時,但隨後列表會附加到新項目,因此時間邏輯需要在客戶端進行管理。 –

回答

1

爲什麼不按日期(最老的先)數組排序,然後使用list.shift()?這將刪除陣列中的第一個項目,如here所述。

0

您對expring元素的方法當你運行getData似乎聽起來。您應該使用push追加到數組的末尾,但是pop只是從數組的末尾拉出元素,這可能不是正確的順序。 JavaScript數組的行爲像堆棧而不是隊列。您可能要添加刪除對JavaScript數組原型建議here