2017-04-25 2 views
1

를 새로 : 우리는 "포스트 요청"과 "MySQL 데이터베이스에 삽입 할 B.요청 나는이 문제에 붙어 지금이 순간에 나는 페이지

A, 및 :

이의이 말을하자 두 컴퓨터입니다 "컴퓨터에서

내 데이터베이스의 테이블이 업데이트되면 컴퓨터 B (또는 더 나은 Ajax가있는 div)의 페이지를 새로 고침하고 싶습니다.

내가 발견 한 가장 쉬운 해결책은 카운터가있는 데이터베이스에서 select를 수행하고 카운터가 X 초보다 이전 인 경우 B의 페이지를 새로 고치고 새로 고치는 것입니다.

저는 PHP, 자바 스크립트 및 jQuery로이 프로젝트를 진행하고 있습니다.

어떻게 할 수 있습니까? 나는 좋은 해결책을 원하지만, 빨리 실현할 수 있습니다.

감사합니다.

클라이언트가 서버와의 열린 소켓 연결을 유지

+0

컴퓨터 A와 B는 컴퓨터 A가 데이터를 삽입 할 때 같은 페이지에 있습니다. 컴퓨터 B가 페이지를 다시로드하지 않고 삽입 된 데이터를 보길 원하십니까? 내가 맞습니까? –

+0

XMLHttpRequest는 ajax입니다. 하나의 비동기 HTTP 요청을 만듭니다. 웹 소켓은 열린 연결을 유지하며 메시지는 양방향으로 전송 될 수 있습니다. 그들은 똑같은 것이 아니기 때문에 다른 것보다 좋지 않습니다. 사과와 오렌지를 비교합니다. – Bill

+0

Genina, 아니요, 다른 두 페이지에 있습니다. –

답변

0

당신은해야한다 (컴퓨터 A와 컴퓨터 B는 동일한 페이지에없는). 소켓 연결이 열려 있고 메시지를 앞뒤로 보낼 수 있습니다. 서버에서 테이블이 업데이트되면 메시지를 브로드 캐스트 한 다음 클라이언트 측에서 해당 메시지를 수신 대기하게하고 테이블을 새로 고칩니다. 이 답변 소켓에

좋은 링크 : https://stackoverflow.com/a/1736398/1879895

+0

고마워요! 나는 그것을 읽을거야 –

+0

멋지다! 내 대답이 도움이되었다고 결정하면, 그것을 upvote 및/또는 올바른 것으로 표시하십시오. 감사! – Bill

+0

평판 메이트가 충분하지 않습니다. ( –

0

표준 관행은 모든 X의 초 서버에서 업데이트를 요청하는 아약스 호출을하는 것입니다. 이것에 소켓을 사용하면 잔인합니다.

+0

정말 응용 프로그램에 따라 달라집니다. 업데이트, 계속해서 ping을하는 것은 잔인합니다. 특히 많은 사용자와 많은 사용자가 있다면 소켓은 열려있을 수 있지만 불필요한 메시지는 앞뒤로 이동하지 않아도됩니다. – Bill

+0

@Bill 네, 그렇지만 직접 소켓 처리를 작성하면됩니다. redux 또는 이에 상응하는 것과 같은 것을 사용하는 것이 더 좋다. – Mykybo

+0

(소켓을 쓰는 것은 그다지 어렵지 않다. 그런 식으로 사용해야한다는 데 동의하지만) 소켓이 과도하게 사용되는지 여부와 관련이있다. 반복적으로 서버에 ping을 수행하는 것보다 서버에 ping을 수행하는 것이 성능이 훨씬 떨어짐 – Bill