Quando o Javascript foi criado ainda não existia uma API para manipular a estrutura de um documento HTML e o único método disponível para alterar um documento dinamicamente era utilizando códigos Javascript para escrever tags HTML enquanto a pagina fosse carregada.
Quando um script passa texto para a instrução document.write (), o texto é adicionado ao documento, e o analisador de HTML se comporta como se o elemento de script tivesse sido substituído por esse texto. Está pratica não é mais considera um bom estilo de programação, porem ainda é funcional e possui importantes implicações.
Se o interpretador de HTML encontrar um elemento <script>, deve, por padrão, executar o script antes de poder analisar o restante do documento. Está técnica não oferece problemas quando você utiliza scripts de um modo procedural. Este modo de execução de scripts é o padrão e é chamado de modo síncrono.
Exemplo:
Neste exemplo criamos uma tabela HTML em tempo de execução utilizando o modo síncrono do interpretador do browser.
Html / JavaScript
<!DOCTYPE html> <html> <head> <title>Desenvolvimento Aberto</title> </head> <body> <h2>Desenvolvimento Aberto</h2> <h3>Javascript - WebBrowser - HTML Dinâmico</h3> <pre> <script> // Cria função function factorial(n) { if (n <= 1) return n; else return n*factorial(n-1); } // Escreve tags html dinamicamente document.write("<table border="1">"); document.write("<tr><th>Valor</th><th>Numero</th><th>Fatorial</th></tr>"); // Cria conteudo da tabela for(var i = 1; i <= 10; i++) { document.write("<tr><td>Valor = </td><td>" + i + "</td><td>" + factorial(i) + "</td></tr>"); } // Fecha tag html document.write("</table>"); document.write("\nCriado em: " + new Date()); </script> </pre> </body> </html>