2012-07-20 3 views
0

나는 완전히 작동하는 예제를 기대하지 않고 있으며, 시작하기위한 방향을 찾고있다.AJAX를 사용하여 위젯을 자동 업데이트하는 방법은 무엇입니까?

내가 뭘하려고하는지 설명하려면 사용자 로그인, 로그 아웃, 사이트에 추가 작업 등을 할 수있는 앱이 있습니다. PHP와 AJAX를 사용하여 가능한지 알고 싶습니다. 이 같은 자동 업데이트 위젯 :

  • 누군가가 로그인 ...
  • 누군가가 사진을 추가 ... 등
  • ..

난 그냥 따라 지침이나 방향을 원하는 , 어떻게 실시간 위그를 만들 수 있습니까? 그 자동 업데이트 및 당겨 데이터/작업/etc .. 시간 간격 업데이 트가 될 것이라고?

아이디어가 있으십니까?

답변

1

먼저 위젯에 표시 할 작업 목록을 저장해야합니다. 예를 들어 (id, created_at, action_description)을 사용하여 데이터베이스 테이블을 만들거나 사용자가 표시 할 작업을 수행 할 때마다 위젯에서 (예를 들어 사진을 업로드 한 경우 등) 해당 테이블에 레코드를 삽입하십시오 (많은 사용자가있는 경우 효율성이 떨어지며 확장되지 않습니다) 둘째, 브라우저 측면에서 정기적으로 함수를 호출합니다 예를 들어 setInterval을 사용하여) 서버에 업데이트를 쿼리하고 위젯을 업데이트하십시오.

위의 솔루션은 매우 단순하고 확장되지 않습니다. 도움이 되길 바랍니다

1

자바 스크립트 메서드 setTimeout()을 사용하면 X 밀리 초마다 위젯을 새로 고침 할 수 있습니다.

var delay = 5000; // 5 seconds 
setTimeout('refresh();', delay); 
function refresh(){ 
    doAjaxCall(); // ajax call to get new data and update the widget 
    setTimeout('refresh();', delay); // schedule next refresh 
} 

현재 새로 고침이 완료되는 경우에만 타이머를 시작합니다 아약스 콜백 내부 일정 변경 (마지막 줄)을 넣어 더 좋을 수도 있습니다.

+0

브라우저는'setTimeout'과'setInterval'에 문자열 리터럴을 사용하지 않습니다. 브라우저가이 경우'eval' 함수를 호출하기 때문입니다. 'setTimeout (새로 고침)'만 작성하십시오. JS의 함수는 객체입니다. – Serjio

관련 문제