programing

AJAX를 사용하여 SQL 데이터베이스의 변경 사항 확인

oldcodes 2023. 11. 5. 14:58
반응형

AJAX를 사용하여 SQL 데이터베이스의 변경 사항 확인

제 데이터베이스에 랜덤으로 업데이트되는 열이 있습니다.해당 열이 업데이트될 때마다 페이지의 내용을 새로 고쳐야 합니다.어떻게 하면 AJAX + jQuery를 사용하여 DB 변경에 대해서만 작업을 수행할 수 있습니까?

당신이 설명하고 있는 것은 구어적으로 혜성 프로그래밍이라고 불립니다.Comet은 영구 HTTP 연결로 웹 페이지에 콘텐츠를 푸시하는 기술 그룹을 설명합니다.

데이터베이스 서버에서 트리거/저장 프로시저 조합을 사용하여 푸시를 시작합니다.그러면 데이터 업데이트가 어디서 오든 상관없이 발생합니다.

서버(데이터베이스/웹)는 연결을 시작할 수 없으며, 클라이언트만 연결할 수 있습니다.따라서 업데이트가 있을 때까지 데이터베이스를 폴링해야 합니다.데이터베이스와 jQuery가 사용하는 것을 확인하는 웹 서비스를 만들 수 있습니다.

편집: 정정합니다.서버가 데이터를 "푸시"할 때까지 AJAX 연결을 계속 열어둘 수 있습니다.참조: http://en.wikipedia.org/wiki/Reverse_Ajax

그리고 분명히 그것은 정말로 여론조사입니다: http://en.wikipedia.org/wiki/Push_technology#Long_polling .서버에 아직 전송할 데이터가 없는 경우, 서버가 전송할 때까지 연결을 열어 둡니다.클라이언트에 서버가 연결하는 수신 포트가 없기 때문에 "순수한" 푸시 기술이 아닙니다.그러나 효과는 비슷합니다.

편집 2: 그럼 다시 질문에 대한 답을 드리겠습니다.웹 서비스를 "투표"하는 방법을 선택해야 할 것입니다.그러면 웹 서비스는 업데이트가 있는지 확인하기 위해 데이터베이스를 확인해야 합니다.데이터베이스에서 업데이트를 확인하는 것이 가장 까다로울 수 있으며 요구 사항에 따라 다릅니다.SQL 쿼리를 실행하여 변경된 사항이 있는지 확인할 수 있지만 어떻게 알 수 있습니까?비교하기 위해서는 일종의 매개변수(일반적으로 날짜)가 필요합니다.잘못하면 일부 업데이트를 놓치거나 한 번의 업데이트에 여러 번 적중할 수 있습니다.Autocracy가 말한 것은 업데이트를 알리는 좋은 방법이 될 것입니다.데이터베이스, 메모리 등에 해당 목록을 보관하고 클라이언트가 업데이트를 받으면 삭제할 수 있습니다.

polling 및 업데이트된 dababase field 값 확인을 위해 javascript의 setinterval 함수를 사용합니다.

자세한 내용은 다음 링크를 확인하십시오. http://www.elated.com/articles/javascript-timers-with-settimeout-and-setinterval/

나는 채팅으로 거의 같은 일을 하고 있고, 매 xx초마다 php 스크립트를 다시 로드합니다.

다음과 같습니다. jquery.nconflict를 사용하지 않는 경우 j를 $로 대체합니다.

j(".chatref").everyTime(3000,function(i){
    j.ajax({
       url: "chatx.php",
       cache: false,
       success: function(updated){
           j(".chatref").html(updated);
           ...do stuff..
       }
   });

이것은 매우 좋은 방법이라고 생각합니다 :) 만약 당신이 chatx에 vars를 보내고 싶다면 php는 그냥 ?php &x=1&y=2?>

수정 후 응용프로그램에 알림을 주는 특수 저장 프로시저를 데이터베이스에 연결합니다.사용자 지정 모듈과 올바른 트리거 문이 필요합니다.

당신의 다른 선택은 여론조사입니다.

데이터베이스의 값을 가진 페이지를 계속 폴링해야 합니다.

setIntreval()을 사용하여 데이터베이스를 쿼리하는 PHP 스크립트에 AJAX 호출을 반복적으로 수행하는 HTML 페이지를 만드는 것을 제안합니다.JSON과 PEAR을 사용하면 작업을 좀 더 쉽게 할 수 있습니다.

참조 링크:

기본적으로 DB에 대한 변경사항에 대해 서버를 지속적으로 폴링해야 합니다.서버는 클라이언트에게 전화를 걸 수 없으므로 클라이언트는 변경 사항이 있는지 서버에 계속 문의해야 합니다.

언급URL : https://stackoverflow.com/questions/2813353/use-ajax-to-watch-sql-database-for-changes

반응형