2011-01-08 3 views
0

jQuery를을 사용하여 실시간에게 MySQL 데이터베이스에서 데이터를 얻는 방법 모든 jQuery를을 사용하여 데이터베이스에서 실시간으로 데이터를 얻는 방법 1 초마다

나는 새 페이지

에 결과를 볼 document.write를 이렇게 변경 필요
<SCRIPT> 
      setTimeout("document.write('<p><?php 
     $qry = mysql_query('SELECT SUM(clicks) AS total FROM short_urls'); 
     $row = mysql_fetch_assoc($qry); 
     echo number_format($row['total']); ?></p>')",1000); 
</SCRIPT> 
+2

위의 코드가 왜 완전 헛소리인지 이해하시기 바랍니다. 서버에서 실행되도록 설계된 코드를 실행하려면 브라우저를 제외합니다. –

답변

4

간단한 전략은 setTimeout를 사용하는 것입니다 : 더 정교한 접근 들어, long polling으로 보일 수 있습니다

setTimeout(function(){ 
    your_function_that_gets_data(); 
    your_function_that_displays_data(); 
}, 1000); 

.


업데이트 : 당신은 내가 위의 옵션을 제안 조금 후 레일을 갔다처럼 아나, 그것은 보인다. setTimeout() 또는 setInterval()을 사용하든, 질문을 업데이트 한 혼동을 피하고 싶을 것입니다.

단순히 합계를 반환하는 PHP 페이지를 만듭니다. 자바 스크립트를 작성하여 원하는 간격으로 비동기 적으로 (즉, 아약스를 통해) 호출 할 수 있습니다. 결과가 반환되면 페이지 영역을 다시 그리기 위해 콜백 함수를 사용하여 합계가 사용자에게 업데이트됩니다. 이 같은

뭔가 :

var updateTotal = function() { 
    $.get('your_script_that_returns_a_total.php', function(data){ // get new total 
    $('#div_displaying_total').val(data); // paint a div with the new result 
    }); 
}; 

이제, 실행하면, 현재 총보기에 사업부를 업데이트하는 간단한 기능을 가지고있다. 원하는만큼 자주 해당 기능을 실행하십시오. 당신은 물론 등 지연, 후에 자신을 호출하기 위해 updateTotal 함수를 작성, 타이밍 많은 애호가 얻을 수

var running = setInterval(updateTotal, 5000); 

그리고 당신은 다음과 같이 업데이트를 중지 할 수 있습니다 : 예를 들어, 5 초마다 실행하는

clearInterval(running); 

... 쉽게 켜기/끄기 스위치를 설정할 수 있습니다.

이 중 하나가 더 명확하게되면, 나는 그 안에 혼란스러운 코드에 대한 하향 회선을 끌어들이는 질문을 업데이트하는 것이 좋습니다.

+0

고맙습니다. 내가 테스트 할게요. – Abudayah

+0

setInterval()을 고려해 볼 수도 있습니다. 자동으로 반복합니다. 그리고 한 번에 많은 요청을 방지하려면 각 요청이 끝날 때 setTimeout을 지정해야합니다. – Eric

+0

이 코드는 어떻게 간소화됩니까? 내 서버 요청이 막히게됩니까? – MarkP

2

PHP를 사용하여 데이터베이스에서 모든 행을 읽으려면 데이터베이스를 호출해야합니다. PHP는 1000ms (1 초)마다 JavaScript setTimeout() 함수를 사용하여 설정된 AJAX 이벤트에 의해 호출됩니다. 이것으로 볼 수있는 huuuuge 문제는 많은 사용자, 대규모 데이터베이스 및 많은 동시 로그인이있는 경우 서버를 매우 빠르게 오버로드합니다. 30 초마다 요청을 제출하는 것이 좋을 것입니다. 어쩌면 최소한 10 일 것입니다.

+0

고맙습니다 .. 나는이 페이지를 "정보"페이지에 추가 할 것입니다.이 페이지를 방문한 사람의 숫자가 조금 많기 때문에별로 해를 끼치 지 않을 것입니다. – Abudayah

+0

좋은 생각이긴하지만 안전하다고는해도 최소한 10 초. – Bojangles

관련 문제