Iniciando no Javascript: Fluxo de escritura do documento
Autor/fonte: CriarWeb.com
E-mail/Url: http://www.criarweb.com/artigos/346.php
Tweet
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:
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.
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:
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.
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.
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.
Enviado por xKuRt em 22/11/2006 às 15:34
Avaliação
Esta publicação ainda não foi avaliada!
A avaliação de publicações é restrita a membros cadastrados e logados no nosso site.
Comentários
Este artigo ainda não foi comentado ou o(s) comentário(s) que foi(ram) enviado(s) a ele ainda não foi(ram) publicado(s).
Envio de comentário:
Sábado, 25 de Maio de 2013
Área restrita
Leitura recomendada
Últimas publicações
Top 5 membros
- dddweb213 pts
- andersonop207 pts
- Jotah197 pts
- fbinasco165 pts
- fredbcn117 pts
Últimos membros online
- xKuRtem 25/05 às 07:31
- GabsMullerem 24/05 às 20:30
- salamandraem 24/05 às 19:55
Últimos membros cadastrados
- salamandraem 24/05
- gravelem 24/05
- flexaem 23/05





