No post anterior falei sobre desenvolvimento em camadas e apresentei a vocês as camadas de conteúdo e apresentação.

Ficou faltando a camada de comportamento. Vamos a ela então.

A camada de comportamento deve ser encarada como uma camada extra no desenvolvimento de uma página para a web. Nessa camada, usamos uma linguagem de script (JavaScript) junto com o DOM (Document Object Model) para modificar o comportamento dos elementos presentes na camada de conteúdo.

Digo que essa camada deve ser encarada como extra porque é importante que seu site ou aplicação funcione perfeitamente na ausência dessa camada (ou do suporte a ela).

O DOM

O DOM é um modelo de dados usado pelos user-agents para montar uma representação do código de uma página (seja ela escrita em HTML, XHTML ou XML) após sua renderização. É mais ou menos como uma árvore. Você pode usar o DOM Inspector do Firefox para dar uma olhada na estrutura dessa árvore. Já falei sobre o DOM Inspector e outras ferramentas legais para desenvolvedores no meu blog.

A partir da DOM API (que é algo como uma coleção de métodos para manipular os elementos no DOM) podemos selecionar elementos ou grupos de elementos e seus atributos e executar diversas funções com eles, inclusive criar ou remover elementos.

No caso do desenvolvimento da camada de comportamento de um site, usamos a DOM API presente no JavaScript, que é a linguagem de script existente em todos os browsers modernos.

Em geral, a maior parte do trabalho que se tem para desenvolver essa camada reside na manipulação do DOM.

São exemplos dos métodos existentes na DOM API:

document.getElementById(id)
Seleciona um elemento a partir do valor de seu atributo ID. É a maneira mais simples de se acessar um elemento no DOM.
Digamos que você tenha um DIV com ID “conteudo”. var conteudo = document.getElementById('conteudo') vai fazer com que a variável conteudo contenha uma referência para o referido DIV. Manipule a variável conteudo e as alterações serão feitas no DIV.
document.getElementsByTagName(tag)
Seleciona um conjunto de elementos que são definidos pela tag “tag”.
Exemplo: var uls = document.getElementsByTagName('ul') cria em uls um array onde cada item é uma referência para um elemento UL dentro do documento.
uls[0] seria, nesse caso, uma referência para a primeira UL presente no documento.

Esses são, com certeza, os dois métodos que serão mais usados em qualquer script que você venha a desenvolver. Existem outros tantos que não vou listar aqui para não tornar o post extenso demais e até mesmo porque esse não é o intuito do texto. Uma ótima referência de métodos da DOM API pode ser encontrada na referência de DOM do Mozilla Developer Center. Apenas tenha em mente que essa referência é específica para os browsers baseados no engine Gecko (Mozilla, Firefox, Netscape), mas praticamente todos os métodos lá descritos funcionam também nos outros browsers igualmente modernos.

Existem milhões de coisas que podem ser feita usando a dupla DOM/JavaScript. Geralmente, usamos a camada de comportamento para melhorar de alguma forma a experiência do usuário ao utilizar uma página web.

Não vou me estender mais no assunto. Leiam o que o Élcio escreveu sobre o assunto. O texto dele é bem explicativo e cita diversas fontes que podem ser usadas como referência para o aprendizado das tecnologias envolvidas no desenvolvimento da camada de comportamento.

Nota: Relendo o texto percebo que está muito aquém do que eu pretendia escrever. É difícil passar o conceito de camada de comportamento sem exemplificar, sem tornar o texto técnico.
Acho que a melhor coisa a fazer é publicar posts menores, com exemplos de código explicados, sobre cada camada. O que vocês acham?

Leia também:

15 Comentários sobre “Padrões web: Desenvolvimento em camadas - Camada de comportamento”

  1. Felipe Ranieri disse:

    Primeiramente parabéns pelo post, gostei dos exemplos. Estou estudando javascript, via w3schools, e encontrar trechos de códigos bem comentados vai me ajudar bastante.
    Quanto a sua pergunta acho sim, bastante interessante a idéia de publicar posts menores com exemplos digamos assim, “mais detalhados”.
    Abraços!!

  2. Pedro Rogério disse:

    Também concordo com o Felipe. Abraços!!!

  3. LeoMenezes disse:

    Puts… ideia muito boa. Então é só esperar?

  4. Robson Ricardo disse:

    Concordo com todos aqui. :D
    Ficamos no aguardo.

  5. O'Marin disse:

    É só pra reforçar, também concordo com post com exemplos de códigos :D

  6. Érico disse:

    Acho que posts curtos é melhor para todos. Mais rápido de escrever e de ler. Sou a favor de mais textos curtos do que menos textos longos. :-)

  7. Acídio disse:

    Pode ser interessante.
    =D
    Se quiser ajuda.

  8. Micox disse:

    Eu achei o tamanho do artigo bom.
    Tão cada dia melhores…

  9. Leonardo A. Souza disse:

    Muito, muito bom! Leitura agradavel, bem intereçante. Continue assim!

  10. Pierre disse:

    Como sempre muito bom. Como você preferir postar eu vou ler de qualquer jeito, portanto manda brasa, e novamente obrigado.

  11. [- sObRaL -] disse:

    Bruno, acho que textos mais detalhados e exemplificados são melhores do que curtos, desde que não sejam prolixos. Sobre o document.getElementsByTagName, ele retorna um nodeList que é quase um array, mas não exatamente.
    Até!

  12. Leandro Vieira Pinho´s Blog » Arquivo » Desenvolvimento web em camadas - camada de comportamento disse:

    [...] Acredito pelo fato deste assunto ser pouco discutido aqui no brasil. Encontramos um ou outro falando sobre o assunto em blogs. [...]

  13. spiritia disse:

    Ja to ficando viciado em usar esses comandos nos meus script em ajax document.getElementById(id) no formularios, javascript my love never die, graça a deus, excelente e informativo post, nota 1000 amigo, parabens, :P

  14. Crie formulários que submetam com um ENTER disse:

    [...] você quiser fazer algo bonito, com AJAX e tudo mais, faça em outra camada. Na camada de comportamento. Já falei sobre isso aqui em alguns posts então não vale a pena gastar espaço falando de [...]

  15. Thiago Codu disse:

    Achei excelente! Parabéns pelo post e por todo seu trabalho. Que Deus te abençoe sempre e te dê a graça de cada vez mais ajudar outras pessoas, como nós desenvolvedores, por exemplo, a expandirmos nossos conhecimentos.
    Um grande abraço!

Leave a Reply