javascript no controler
09/01/2015 18:20
1
É possivel o controler mandar executar um javascript na view?
Tags: javascript


1
Esta é uma pergunta interessantíssima Edu.

A resposta é simples: é possível, sim. Recomendo, não.

Vamos dividir a resposta.

Por que é possível.

Como você pode fazer isto: simples, você pode estruturar a sua página com Ajax e "renderizar" instruções Javascript dentro de algum elemento DOM na sua página. Assim você simplesmente executaria o script, enviado pelo seu controlador, na sua página sempre que a instrução ocorresse. É uma gambiarra monstruosa, mas funcionaria.

Por que não recomendo.

Por que provavelmente não é o que você quer. Talvez o que você realmente deseje seja tornar sua página reativa a eventos, isto é: você quer que o servidor a notifique de que algo ocorreu e, com isto, ela reaja de alguma forma, certo? Neste caso, minha sugestão é que você use a tecnologia websocket. Sua página seria notificada das mudanças e, com isto, reagiria de acordo com o que você quer.

Por que a solução de enviar javascript não é interessante: por que você está misturando as camadas. Controlador deve apenas ser o intermediário entre sua camada de visualização e modelo. Ele não deve controlar como sua página irá se comportar, executar javascript, etc. Isto por que você terminaria com um código que, em um primeiro momento, funcionaria, no segundo, funcionaria muito porcamente e dali pra frente se tornaria um verdadeiro monstro de manutenção.

A solução websocket é mais interessante, você não envia scripts, envia dados, e seu Javascript, já feito para lidar dentro do contexto da página apenas lidaria com o problema para você.



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto