2010-11-28 6 views
2

루프를 사용하여 방문자에게 실시간으로 일부 콘텐츠를 표시하려고합니다. 문제는 콘텐츠가 새 콘텐츠로 대체되는 대신 출력에 추가된다는 것입니다. 다음은 10에서 0까지 카운트하는 코드의 예입니다. 결과는 거꾸로 계산하는 대신 전체 결과 집합을 보여줍니다. 내 말은, 카운터가 진행될 때 각 숫자가 표시된 모든 숫자를보고 싶지는 않습니다.콘텐츠의 PHP 실시간 출력

ob_end_flush(); 
     //start buffering 
     ob_start(); 

     echo str_pad ('', 1024); // minimum start for Safari 
     for ($i = 10; $i > 0; $i --) { 
      echo str_pad ("$i<br>\n", 8); 
      ob_flush(); 
      flush(); 
      sleep (1); 
     } 
     die(); 
+4

HTTP가 작동하는 방식입니다. 한 번의 요청으로 단 하나의 응답 만 전송합니다. – Gumbo

답변

0

는 트릭이나 뭔가 (하나 또는 두 개의 생각)하지만 브라우저에서 아약스 자동 업데이트 함께 할 수있는 가장 적절한 방법이있을 수 있습니다. this처럼 패턴 설명.

0

실제로 PHP에서는 js를 사용하지 않았습니다. (Stacker 도움말 사용) 카운트를 반대로 바꿀 수 있습니다

그러나이 질문에 대한 답변이 없으면 죄송합니다. 여기에 우리의 dev에 사이트

데모 < link>

또한

2

이이에 관해서는, 혼자 PHP로 달성 될 수 없다 (다시 사용 JQuery와 div 요소를 새로 고치려면 해당하지 않을 수 있습니다) 수 브라우저에서 렌더링되는 내용을 변경하려면 클라이언트 쪽에서 약간의 개입이 필요합니다.

당신이이 분업을 나누는 방법은 필요한 것에 달려 있습니다.

코드가 모두있는 경우 JS 루틴을 작성하는 것이 타이밍에 맞게 카운트 다운하는 것이 훨씬 낫습니다.

숫자를 생성하는 데 다른 방식으로 PHP가 필요한 경우 여러 PHP 호출로 업데이트 세대를 분할 할 수 있는지 또는 단일 PHP에서 가져온 것인지를 결정해야합니다 통화 내에서 취하는 행동으로 인해 전화를 걸 수 있습니다.

전자가 이상적인 상황 인 경우이를 분리 할 수 ​​있습니다. 그러면 절차는 AJAX 호출을 설정하여 주기적으로 업데이트 된 정보를 검색하는 것입니다.

후자와 한 페이지의 내용이어야하는 경우 새 콘텐츠가 생성 된 상태로 연결을 유지해야합니다.

이 경우 이전 내용을 대체 할 새로운 내용을 얻으려면 JS 코드가이를 처리해야합니다. 페이지에서 주기적으로 실행되는 코드는 새 내용을 확인하고 그에 따라 업데이트하거나 약간의 트릭이 업데이트를 수행하는 코드를 주입하여 재생할 수 있습니다.

보내기 새로운 디스플레이 요소 대신 업데이트를 수행하는 콘텐츠가 제대로 작동합니다. 브라우저가 새로운 <script> 요소를 받으면 조금 움직이지 않으면 실행됩니다. 플러그인을 사용하지 않고 웹 페이지를 푸시 업데이트 할 수 있다는 것을 알고있는 유일한 방법입니다.