Me digam, o que é melhor, fazer um if no java para nem chegar a escrever um trecho de código (javascript), ou um if no javascript para não executar esse trecho?
ex:
<%
if(cond) {
%>
<script type='text/javascript'>
alert(1);
</script>
<%
}
%>
ou
<script type='text/javascript'>
cond = <%= (cond ? "true" : "false") %>;
if(cond) alert(1);
</script>
neste exemplo, não valeria a pena perder tempo pensando em como fazer isso, mas estou com um template de relatório de 980 linhas na empresa, em que de acordo com algumas variáveis setadas no jsp, escrevemos ou não alguns trechos de javascript. Acredito que não executar o trecho seja melhor pois fica mais fácil de entender o javascript e me possibilita coloca-lo num arquivo externo, mas gostaria de saber a opinião de vocês!
abraço
Olá,
Dentre essas duas abordagens eu prefereria a primeira, apesar de o código na JSP ficar maior, pelos seguintes motivos:
- Você só envia ao cliente código útil (se o código a ser executado condicionalmente for grande faz diferença no tempo de carregamento, senão realmente não há motivo para se preocupar com isso)
- A sintaxe do Javascript não fica poluida por elementos do JSP, fica mais chato de ler e você não pode usar o editor da IDE com todas as suas funcionalidades já que ele não consegue entender o código.
Outra alternativa interessante é deixar todas essas condições fora do Javascript, renderizando os valores relevantes de alguma outra forma (campos ocultos, por exemplo).
Por exemplo:
[code]// No HTML:
// No javascript:
if (document.getElementById(“txtCondicional”).value == “true”) {
alert(1);
}
[/code]
E mais uma coisa: Não use scriptlets! Não importa qual a solução adotada prefira JSTL e EL, o código fica muito mais limpo.