2011-04-29 4 views
-1

큰 응용 프로그램의 시각적 프론트 엔드 인 grails 플러그인을 개발 중입니다. 애플리케이션에서 플러그인으로의 통신은 메시지에 의해 주도되며, 가능한 한 올바른 방법은 grails 서비스에서 메시지를받는 것입니다.보기에서 grails 서비스와 자바 스크립트 코드를 연결하는 방법

몇 가지 다른 메시지 유형이 있고 (예 : jQuery, jQueryUI, flot 및 기타와 같이 자바 스크립트 라이브러리를 중심으로 빌드 된)보기의 다른 부분에 영향을 미칠 것이라는 점을 고려할 때, 의사 결정 (메시지는 뷰의 어느 부분을 업데이트해야하는지)을 구현하고, 서비스에서 발생하는 내용을 뷰의 자바 스크립트 코드에 연결하는 방법을 설명합니다. 간단히 말해서

: 결정은 메시지를 만드는 방법과 지능적으로보기에서 자바 스크립트 코드로 Grails의 서비스를 연결하는 구현하는

.

P. 나는 비슷한 질문을 이미 찾지 못했고, 질문이 "단순하다"면 나에게 용서해 준다. 나는 동시에 많은 새로운 기술을 흡수하려고 노력하고 있으며, 제대로 할 시간이별로 없다.

+0

몇 가지 질문 :보기를 다시 그리시겠습니까? AJAX 기반이 될 것입니까? 설문 조사/푸시 형 커뮤니케이션을 수행 할 계획입니까? – julkiewicz

+0

나에게 너무 일반적인 것 같습니다. 메시지의 강도와 기능에 크게 의존합니다. 몇 가지 구체적인 예를 들어 주시겠습니까? –

+0

@julkiewicz 간격 기반 새로 고침도 허용됩니다. 이상적인 해결책은 새 메시지가 나타날 때마다 새로 고침을하는 것이지만 몇 초마다 자동 새로 고침도 좋습니다. – Adis

답변

1

서비스에서보기를 렌더링 할 수 없습니다. 그리고 그들은해서는 안됩니다. 그것이 바로 감독관의 임무입니다. MVC을 참조하십시오. 메시지 기반 시스템은 일반적으로 뷰 렌더링을위한 메시지를 전달하지 않습니다. 백엔드를 업데이트 할 수 있도록 메시지가 전송되므로 여기에 몇 가지 옵션이 있습니다 ...

메시지 중심 접근 방식을 다시 생각해보십시오. 이 경로를 계속 진행하는 경우 서비스가 푸시 기술을 통해 클라이언트에 알리고 무엇인가가 변경되어 업데이트되어야한다고 푸시 (comet) 기술을 구현해야합니다.

ajax 접근법을 사용하고 (신중하게) 폴링을 구현하거나 여전히 푸시 (혜성) 기술을 사용할 수 있습니다.

첨단으로 이동하여 WebSockets을 살펴보십시오.

+0

불행하게도, 메시지 기반 접근 방식은 나의 선택도 아니며 변화시킬 수있는 능력도 아닙니다. 내가 가진 것과 함께 일해야하기 때문에 현재 상황을 어떻게 처리 할 수 ​​있을지 아이디어를 찾고 있습니다. 푸시 기술을 살펴 보겠습니다. 또한 서비스에서 뷰를 렌더링하지 않고 서비스에서 뷰로 일부 정보를 보내고 flot 라이브러리에 대한 정보가 들어있는 javascript 배열을 업데이트하고 어떤 그래프를 사용해야할지 결정합니다. 전송 된 메시지에 따라 업데이트됩니다. – Adis

+0

서비스에서보기를 렌더링하고보기에 정보를 보내는 것은 똑같습니다. 서비스에서 수행 할 수 없으며 수행해서는 안됩니다. 아는 한, 일부 푸시 기술이나 아약스 폴링을 사용하는 것이 유일한 옵션입니다. 그러나, 다른 누군가가 더 좋은 아이디어를 가지고 있다면, 나는 그것에 대해 듣게 될 것입니다. – Gregg

+0

"뷰를 렌더링하고 뷰에 정보를 보내는 것은 똑같은 일"이라고 말하지 않습니다.전송 된 메시지가 "model part N updated"이고 렌더링 뷰에서의 Controller의 책임은 그대로 유지됩니다. MVC에서는 문제가 없습니다. 그 다음에는 그 답을 두 번째로 줄 것입니다. –

관련 문제