2011-12-21 2 views
1

현재 Play!를 사용하여 응용 프로그램을 만들고 있는데 내 데이터베이스의 값에 따라보기를 업데이트하고 싶습니다.Play Framework Ajax를 사용한 비동기 CSS보기 업데이트

30 분마다 severals 사이트에 http 요청을 보내고 각 사이트의 값을 데이터베이스에 기록하는 모니터링 작업을 만들었습니다. 사이트가 응답하면 1을 기록하고 그렇지 않으면 0을 기록합니다.

그 외에도, 각 응용 프로그램 기본 템플릿에서 각 사이트의 작은 컬러 점을보고 싶었습니다. 사이트가 응답하면 녹색으로, 그렇지 않으면 빨간색으로 표시됩니다. 이 색상 업데이트는 비동기 적으로 수행해야합니다. 이 도트는 내 응용 프로그램의 모든 페이지에 표시됩니다.

그래서 필자는 비동기식 작업 인 내 작업을 사용하여 필요시 점 색상을 변경할 수 있지만 작업에서 뷰를 업데이트 할 수 있는지 여부는 알 수 없습니다.아니면 css를 사용하여 색상을 업데이트하는 아약스 스크립트를 만들 수 있지만 내 데이터베이스 플래그 값이 변경되면 트리거하는 방법을 모르겠습니다.

도움 주셔서 감사합니다.

답변

1

작업에서보기를 업데이트 할 수 없습니다. 하지만 WebSocket으로 업데이트 할 수 있습니다 : http://www.playframework.org/documentation/1.2.4/asynchronous#UsingWebSockets 아직 모든 브라우저에서 지원되지는 않습니다.

나는 이것을하기위한 표준 방법이 모든 X 초마다 아약스의 컨트롤러 (귀하의 DB에 질문)를 호출하고 응답에 따라 점 색상을 업데이트하는 것이라고 생각합니다. 주의 할 점은 새로 고침 빈도를 선택하는 것입니다. 클라이언트가 많으면 서버에 많은 요청이 있습니다.

+0

답장을 보내 주셔서 감사합니다. 내 데이터베이스 값을 공개하는 가장 좋은 방법을 알고 있습니까? 컨트롤러는 website.findAll()을 수행하고 목록을 반환합니다 ... renderJSON을 사용해야하지만 실제로 어떻게 작동하는지 알 수는 없을 것입니다 ... 그리고 play # {jsAction 태그를 사용하거나 $ .ajax 및 setInterval을 호출하면됩니까? –

+0

예. renderJSON을 객체와 함께 사용하면 json에서 renderJSON을 변형 할 수 있습니다. jsAction 태그를 사용하는 것이 더 쉬울 것이지만 jQuery를 직접 사용할 수 있습니다. 다음은 jsAction과 renderJSON이 실제로 작동하는 것을 볼 수있는 예제입니다. http://geeks.aretotally.in/twitter-playframework-heroku – Mike