Fluxo de escritura do documento
É o processo no qual o navegador escreve a página. Para escrever na página em Javascript o fluxo do documento deve estar aberto.Por Miguel Angel Alvarez - Tradução de JML
Publicado em: 07/4/05
Sobre o objeto document também é interessante falar um pouco sobre o fluxo de escritura do documento ou página web.
Quando o navegador lê uma página web vai interpretando e escrevendo em sua janela. O processo no qual o navegador está escrevendo a página lhe chamamos fluxo de escritura do documento. O fluxo começa quando a página começa a ser escrita e dura até que esta termine de ser escrita. Uma vez terminada a escritura da página, o fluxo de escritura do documento se fecha automaticamente. Com isto termina a recarga da página.
Uma vez fechado o fluxo, não se pode mais escrever na página web, nem texto nem imagens nem outros elementos.
Em javascript, temos que respeitar o fluxo de escritura do documento forçosamente. É por isso que só podemos executar sentenças document.write() (método write() do objeto document) quando está aberto o fluxo de escritura do documento, ou o que é igual, enquanto a página está sendo recarregada.
Lembramos as duas formas de executar um script em Javascript:
- Execução dos scripts enquanto a página está sendo recarregada.
Aqui poderemos executar document.write() e fizemos habitualmente nos exemplos anteriores.
- Execução dos scripts quando a página foi recarregada, como resposta a um evento do usuário.
Aqui, não podemos fazê-lo porque a página terminou de recarregar, de fato, não o fizemos nunca até agora.
Há o ponto em que não se pode escrever na página quando já está fechado o fluxo. Na verdade sim que pode, mas necessitamos abrir o fluxo outra vez para escrever na página, tanto é assim que embora nós não abramos explicitamente Javascript se encarregará disso. O que tem que ficar claro é que se fazemos um document.write(), o fluxo tem que estar aberto e se não estiver se abrirá. O problema de abrir o fluxo de escritura do documento, uma vez já está escrita a página, é que todo o conteúdo é apagado.
Para que fique claro vamos fazer um script para escrever na página uma vez esta tenha sido recarregada. Simplesmente necessitamos um botão e ao clicá-lo executar o método write() do objeto document.
<form>
<INPUT type=button value=escribir onclick="window.document.write('olá')">
</form>
Se observarmos, no manipulador de eventos onclick, colocamos a hierarquia de objetos desde o princípio, ou seja, começando pelo objeto window. Isto é porque existem alguns navegadores que não subentendem o objeto window nas mesmas sentenças sentencias escritas nos manipuladores de eventos.
Podemos
ver o exemplo em funcionamento.
O resultado da execução pode variar de um navegador a outro, mas de qualquer forma se apagará a página que se está executando.
Métodos open() e close() de document
Os métodos open() e close() do objeto document servem para controlar o fluxo do documento desde Javascript. Permite-nos abrir e fechar o documento explicitamente.
O exemplo de escritura na página anterior deveria haver sido escrito com sua correspondente abertura e fechamento do documento e teria ficado algo parecido a isto.
<script>
function escreve(){
document.open()
window.document.write('Olá')
document.close()
}
</script>
<form>
<INPUT type=button value=escrever onclick="escreve()">
</form>
Vemos que agora não escrevemos as sentenças dentro do manipulador, porque, quando há mais de uma sentença, fica mais claro colocar uma chamada a uma função e na função colocamos as sentenças que quisermos.
As sentenças do exemplo anterior, que cobrem a abertura, escritura e fechamento do documento. Podem
ser vistas aqui.
Comentários do artigo