Pergunta

Eu tenho uma dúvida: - Existe alguma / convenção padrão que quando eu deveria usar "Smarty templates" e quando devo usar Javascript chamadas Ajax para produzir o conteúdo? Eu posso usar Ajax / Javascript chama para produzir o conteúdo de forma dinâmica.

Meu aplicativo usa tanto Ajax e Smarty , mas eu quero definir uma regra para desenvolvedores

Foi útil?

Solução

Você deve só usam chamadas AJAX para dados dinâmicos de carga que não é conhecida no momento em que a página é carregada . Por exemplo, quando você clica no link "comentários" para uma pergunta dada / resposta sobre estouro de pilha, uma chamada de AJAX é feita para carregar dinamicamente os dados. Este é um resultado do usuário clicar no link de comentários, não um resultado do carregamento da página. Você não sabe que você deve mostrar esses comentários no momento a página é carregada, por isso é apropriado para fazer uma chamada AJAX neste caso.

Você deve uso templates para mostrar quaisquer dados que são conhecidos no momento em que a página é carregada . Ela torna mais fácil lidar com as pessoas que têm Javascript desativado (eu sei, não muito), e fornece uma clara separação da lógica de apresentação. Outro importante benefício da utilização de templates é o fato de que é possível diminuir significativamente o número de solicitações HTTP feitas a partir do navegador do cliente.

Isto é especialmente importante no mundo de navegação móvel onde a latência, não largura de banda, é o seu maior obstáculo. No Safari móvel, por exemplo, uma única solicitação HTTP para uma página Smarty-templated irá carregar significativamente mais rápido do que um pedido para carregar uma página Javascript-templated que faz cinco ou seis solicitações HTTP adicionais. Isto é especialmente verdadeiro quando se usa EDGE, 3G e outros serviços de dados móveis não wi-fi. Na verdade, isso é tão importante que é a primeira diretriz no Yahoo do Melhores Práticas para acelerar o seu site .

Idealmente, você deve também funcionalidade graciosamente degrade quando o Javascript está desativado . Um bom exemplo é uma caixa de pesquisa de completar auto. É muito legal ter termos de pesquisa sugeridas magicamente aparecem enquanto você digita, mas se você desligar Javascript, você ainda tem uma caixa de pesquisa funcional. Isso é um exemplo clássico de uma boa degradação em serviço. Stack Overflow geralmente faz um ótimo trabalho fornecendo uma sólida experiência não-Javascript. Um lugar fica aquém é nos comentários. Quando o Javascript está desativado, apenas os comentários mais populares são exibidos, e postar novos comentários está desativado.

A não ser absolutamente necessário, você deve pensar em Javascript como uma característica do bônus que não pode ser ativado, não como algo que deve ser usado para construir partes críticas de seu Web site . Existem, obviamente, exceções (algumas coisas simplesmente não pode ser feito sem Javascript). Você vai notar, por exemplo, que Stack Overflow é muito utilizável com Javascript desligado. Você não vai obter as atualizações em tempo real quando novas respostas são afixados, ou em tempo real sofisticados previews Markdown, mas a funcionalidade do núcleo ainda está lá. Todo o "trabalho pesado" é feito com HTML e CSS. Javascript é apenas a cereja (reconhecidamente muito bom formação de gelo) sobre o bolo. Este é tipo de uma nota lateral, mas é importante o suficiente para mencionar.

Outras dicas

Provavelmente depende de que tipo de trabalho que você está fazendo em seus modelos. Pessoalmente, eu odeio fazer um monte de coisas estilo / layout pesado estritamente de Javascript. Se você pode carregar a maior parte do seu layout via. pedaços Smarty e apenas específicos alteração de dados (apenas os dados , não a marcação / estilo, se possível) que pode ser um bom lugar para começar com para padronizar dentro de sua própria equipe de desenvolvedores.

Use modelos para a geração do lado do servidor e DHTML / AJAX para qualquer coisa após o carregamento da página original (não usar uma atualização). Mesmo assim, a resposta do servidor para a própria chamada AJAX pode ser montado com um modelo, que pode funcionar melhor para qualquer conteúdo não-trivial.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top