2009-12-01 13 views
3

현재 정렬되지 않은 목록이있는 페이지가 있습니다. 이 목록은 처음에는 db를 쿼리하여 채워지며 각 목록 항목에는 타임 스탬프와 텍스트가 있습니다. 새 데이터가 들어 오면 자바 스크립트와 AJAX를 사용하여이 페이지는 매 10 초마다 순서없이 목록을 업데이트합니다.jQuery - 시간에 따라 목록 항목 제거

항목이 24보다 오래된 경우이 순서없는 목록에서 목록 항목을 제거하는 가장 쉽고 효율적인 방법은 무엇입니까? 시간?

내 성향은 다음을 수행하는 것입니다 : 데이터가 돌아 오면, 데이터를 가져 오기 위해 호출합니다 JS 파일에서

  1. JS 동안 배열
  2. 에 정렬되지 않은 목록에있는 모든 목록 항목을로드, 해당 항목을 배열에 추가하십시오.
  3. getData() 함수가 호출 될 때마다 24 시간이 지난 모든 항목을 제거하는 removeData() 함수도 호출하십시오.

또한 자바 스크립트 배열에 목록 항목을 추가하는 올바른 방법을 찾는 데 문제가 있습니다. 여기에 내가 배열에 대한 모든 목록 항목을 추가하기 위해 노력 해왔다 코드입니다 :

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

배열에서 목록 항목을 제거하기 위해, 내가 사용하는 예상 : expring 요소에

list.pop(); 
+0

24 시간이 넘은 항목을 걸러내는 SQL에 WHERE 절을 추가 할 수 있습니까? –

+0

초기로드에서 SQL은 지난 24 시간 동안 필터를 수행하지만 목록에 새 항목이 추가되므로 시간 논리를 그 시점에서 클라이언트 측에서 관리해야합니다. –

답변

1

배열을 날짜순 (가장 오래된 것부터)으로 정렬하지 않은 다음 list.shift()을 사용하십시오. 왜 그런지 알고 싶지 않으십니까? here과 같이 배열의 첫 번째 항목이 제거됩니다.

0

당신의 접근 방식을 getData를 실행할 때 소리가 나는 것처럼 보입니다. 푸시 버튼을 사용하여 배열의 끝에 추가해야하지만 팝업은 배열의 끝에서 요소를 가져옵니다. 이는 올바른 순서가 아닐 수 있습니다. Javascript 배열은 큐가 아닌 스택과 같은 역할을합니다. here