2013-05-17 5 views
3

내가 유지하고있는 웹 사이트에서 페이스 북 알림과 같은 기능을 추가했습니다. 데이터베이스의 변경 사항을 자동으로 검색하려면 새 항목이 삽입/업데이트 된 경우 알림이 생성됩니다. http://www.9lessons.info/2009/07/auto-load-refresh-every-10-seconds-with.html데이터베이스 변경 사항을 자동으로 감지하고 jquery 알림을 생성하는 방법은 무엇입니까?

그것은 자동으로 사업부를 업데이트 할 jQuery를 사용

나는이 발견했다. 나는 그것을 시도하고, 수정하고, 작동했다. :)

+0

어떤 DBMS를 사용하고 있습니까? –

+1

_ 내 데이터베이스의 변경 사항을 자동으로 검색하고 싶습니다. - 어떻게 그 계획을 세웠습니까? – Halcyon

+0

이것이 가능한지 나는 모른다. 3 분마다 PHP 파일을로드 할 생각이었습니다. PHP 파일에 select 문이 있습니다. 가져온 행이 있으면 PHP 파일은 가져온 행을 반환합니다. div를 자동으로 새로 고치는 jquery와 비슷하지만 먼저 PHP 파일을로드해야 jquery가 결과를 출력합니다. –

답변

2

즉시 알림을 받으려면 웹 소켓이 필요합니다 (예 : Ratchet, PHP 용).

데이터베이스의 변경 사항을 감지하는 것이 쉽지는 않지만, 데이터베이스를 업데이트 할 때 PHP에서 메시지를 보내는 것이 더 쉬울 것입니다.

이렇게하려면 현재 페이지를 방문하는 모든 사용자와 웹 소켓 연결을 만들어야합니다. 누군가 업데이트하거나 삽입하면 연결된 모든 사용자에게 메시지가 전송됩니다.

간단한 튜토리얼 체크 아웃이 페이지를 http://socketo.me/docs/hello-world

+0

참고로, 대부분의 웹 호스트에서는이 기능을 사용할 수 없습니다. – VettelS

0

당신이 할 수있는 trigger하지만 난 그것을 할 것이 훨씬 간단한 방법으로 :

1 때 누군가가 필요한 삽입/업데이트,에서와

notifications(id, user_id, message, status) 

2 그런 다음 크론 작업 executi이 : 동일한 스크립트는 다음과 같이 보일 것의 당신이 보낼 각 통지, notifications를 호출하자, 전용 테이블에 행을 삽입 상기 테이블을 읽는 X 시간마다, 상기 user_id을 갖는 하나의 통지를 사용자에게 전송하고, 그 행을 테이블로부터 삭제한다 (또는 무엇을 보내 었는지 알고 싶으면 "송신"으로 설정한다).

EDIT : crontab 예 : 3 분마다 실행 중입니다. 당신이 이것을 달성하는 데 도움이됩니다 혜성 (또는 긴 폴링)이라는 기술이

0 */3 * * * complete_path_to_the_script > /dev/null 
+0

나는 논리를 가지고 있습니다. 어떻게하면 크론 작업을 할 수 있을지 제안 할 수 있습니까? 3 분마다 notifs 테이블에서 알림을 선택하겠습니까? –

+0

죄송합니다. 사무실에 없었습니다. cron 작업에 대한 업데이트 된 답변을 확인하십시오. – Naryl

1

이다 : 편집 할

첫 번째 유형 crontab -e는, 다음 줄을 삽입합니다. 당신이 을 가지고 있지 않다면은 (AJAX를 통해) 서버를 폴링 (polling)하는 것입니다. 데이터가 변경되었는지는 x 초입니다. 낭비적이고 리소스가 많이 소모됩니다. 기본적으로 혜성은 서버를 폴링하여 새로운 변경 사항이 있는지 확인하고 실제로 변경된 경우에만 서버가 응답합니다. 실제로 끌어낼 데이터가 실제로있을 때만 서버에 도달한다는 의미입니다.

JavaScript로 구현하기는 쉽지만 제목에 jQuery를 언급 했으므로 this 플러그인이 유용 할 수 있습니다.

관련 문제