Iniciando no Javascript: Fluxo de escritura do documento


Autor/fonte: CriarWeb.com
E-mail/Url: http://www.criarweb.com/artigos/346.php




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.

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.




Rec6 Digg del.icio.us

Enviado por xKuRt em 22/11/2006 às 15:34


Avaliação

Esta publicação ainda não foi avaliada!


Avaliar:


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:




  

Terça, 09 de Fevereiro de 2010

Leitura recomendada

Delphi: O guia essencial

Top 5 membros

Últimos membros online

Últimos membros cadastrados