대답이 당신은 아마이되고 싶어보다 조금 더 많은 작업이 될 것입니다 의견
를 기반으로 업데이트되었습니다. 2 개의 테이블이있는 데이터베이스가 필요합니다. 표는 활성 세션 ID를 개최하고 테이블이 메시지를 개최한다 :
tblSessions
ID Int
LastSeen DateTime
SessionID Varchar(255)
tblMessages
ID Int
Timestamp DateTime
SessionID Varchar(255)
Message Varchar(255)
방문자가 페이지에 올 때, 당신은 방문자가 세션 ID가 있는지 확인해야합니다. 방문자가 이미 세션 ID를 가지고있는 경우 tblSessions
테이블의 LastSeen
열을 업데이트하십시오. 방문자가 세션 ID를 가지고 있지 않으면 on을 지정하고 tblSessions
테이블에 추가하십시오. 이 코드는로드 될 때 모든 페이지에서 실행되어야합니다.
데이터베이스 테이블 tblSessions
에 대한 쿼리를 실행하여 LastSeen
의 X 시간보다 오래된 모든 항목을 제거해야합니다. X의 값은 5 분입니다. 이 쿼리는 각 페이지로드 상단이나 서버 백엔드 프로세스에서 실행할 수 있습니다.
이제 모든 사용자의 화면을 깜박이기를 원할 때 tblSessions
에 각 항목에 대해 tblMessages
에 항목을 추가합니다. Timestamp
을 메시지를 보내는 시간으로 설정하고 Message를 "flash"로 설정하십시오.
자바 스크립트의 브라우저 측에서 setInterval
으로 폴링 기능을 설정하십시오. 폴링 함수에서 서버 쪽 페이지로 ajax 스크립트를 호출하여 메시지를 반환합니다. 이 서버 측 스크립트는 tblMessages
에 현재 세션 ID에 대한 항목을 쿼리하여 다시 전달해야합니다. 또한 테이블에서 항목을 제거해야합니다.
위로 자바 폴링 기능에서 "플래시"메시지를 확인하고 화면을 깜박일 수 있습니다. 폴링 기능이 더 자주 호출되면 실시간으로 방문자는 이지만 부하는 이상입니다.
tbleSessions
테이블과 마찬가지로 tblMessages
테이블에서 이전 항목이 X +1 분 이상 지나면 문제가 발생할 수있는 오래된 결과가 테이블에 나타나면 제거해야합니다.
이렇게. 대략 한 번에 페이지를 방문하는 모든 사용자를 위해 화면이 깜박입니다. 네트워크 지연과 약간 다른 시간에 투표하는 모든 사람들이 정확히 같은 시간에 플래시 할 방법이 없으므로 대략 말합니다 .... 어떤 경우에도 쉬운 방법은 아닙니다.
"창"과 "div"가 혼동되는가요? AFAIK, 특정 CSS 스타일을 가진 모든 요소에 대해 플래시 효과를 원한다는 뜻입니다. –
나는 여러 개의 div에 대해 이야기하는 것이 아닙니다 ... 브라우저 창에 관한 이야기입니다. 당신은 여기에 플래시 경매를 볼 수 있습니다 ... http://www.beezid.com/ .. 그 효과는 입찰 버튼을 클릭 할 때 적용됩니다 .. 내가 원하는 것을 말하십시오 – Gowri
그래서, 당신은 무언가를 "플래시"하려고합니다 ** 특정 웹 페이지를보고있는 모든 ** 열린 브라우저 (인터넷 전체)? 그 경매 페이지는 누군가가 입찰 할 때 해당 페이지를 보는 모든 브라우저에서 깜박입니까? 또는 누군가가 새로운 대답을 추가했을 때 메시지를 깜박이는 Stack Overflow처럼? 나는 그때 당신이 틀린 질문을 한 것을 두려워한다. XHR/Ajax가 필요합니다. –