Esperar HTML carregar para executar JS

2,251 views
Skip to first unread message

flaviomicheletti

unread,
Apr 9, 2012, 1:46:54 PM4/9/12
to js...@googlegroups.com
Não sei se essa dúvida cabe aqui...


Qual a forma mais adequada de esperar o HTML ser carregado
para executar o Js (sem o uso de bibliotecas)?

Eu estava pesquisando as formas de esperar o html ser
totalmente carregado para depois executar o JS, então
eu lembrei que na escola antiga se fazia assim

<body onload="JS"... Eu canssei de fazer isso e sei que hoje
não devemos fazer mais assim

Em alguns livros sobre JS é muito usado o seguinte código:

function faz_algo(){
...
}
windown.load = faz_algo;

Já o Kevin e o Cameron em seu livro "Simple Javscript"
sugerem que a utilização de uma função do tipo "VUDU"
(não me perguntem o que eles quiseram dizer com isso, rs)
mas eu reparei que a função VUDU que eles se referem
acrescenta um receptor de eventos adinvinha em quem?
No evento load do objeto window.

Obs: Essa função faz parte de uma biblioteca chamada Core
que acompanha o livro e que eu coloquei no JSbin
para quem quiser dar uma olhada.


O Jquery utiliza-se da elegantíssima:
$(document).ready(

});
Mas pense que apenas precisamos esperar o HTML ser carregado,
ou seja, não quero utilizar jquery apenas para fazer isso.

Repetindo a pergunta: qual é a forma mais adequada?
ou talvez a mais utilizada?

Agradeço desde já.

Thiago Avelino

unread,
Apr 9, 2012, 2:51:36 PM4/9/12
to js...@googlegroups.com
Se você colocar a chamada do Javascript no final da pagina ele só vai carregar após passar pela chamada, sendo assim ele só vai carregar depois de processar o HTML.

[]'s

--
Thiago Avelino
+55 11 81574800



2012/4/9 flaviomicheletti <flaviomi...@hotmail.com>

Ofelquis Gimenes

unread,
Apr 9, 2012, 2:56:40 PM4/9/12
to js...@googlegroups.com
Olhe isso aqui, é bem simples e discutível
Esta na parte 8, alias o post é legal pra quem não quer mais depender totalmente do jQuery

flaviomicheletti

unread,
Apr 10, 2012, 10:52:07 AM4/10/12
to js...@googlegroups.com
Bem lembrado Thiago,

Fiz isso também por um bom tempo, mas penso que foge das boas práticas.

Thiago Avelino

unread,
Apr 10, 2012, 10:56:19 AM4/10/12
to js...@googlegroups.com
Não se foge das boas praticas, para mim isso é uma ótima pratica pois nao preciso esperar o usuario fazer download da pagina para depois realmente renderizar o html.


[]'s

--
Thiago Avelino
+55 11 81574800



2012/4/10 flaviomicheletti <flaviomi...@hotmail.com>

Arthur Cláudio Almeida Pereira

unread,
Apr 10, 2012, 11:01:13 AM4/10/12
to js...@googlegroups.com
Como o Thiago disse realmente o JS no fim da página é uma boa prática sendo considerado uma dica até para otimização de sites. Nesse link uma das técnicas de otimização fala exatamente desse ponto. http://blog.caelum.com.br/por-uma-web-mais-rapida-26-tecnicas-de-otimizacao-de-sites/

Vinicius Souza

unread,
Apr 10, 2012, 11:14:13 AM4/10/12
to js...@googlegroups.com
Como disse o Thiago:

Não é: "uma boa prática", é: "uma *ótima* prática". 

Afinal, Js no Head é tiro no pé para performance.

2012/4/10 Arthur Cláudio Almeida Pereira <arthur.alm...@gmail.com>



--
[]s,

[ # Vinicius Souza ] - Desenvolvedor de Interfaces
+55 11 64342929

// Twitter : @viniciusapp,
// Site : vinicius.co

flaviomicheletti

unread,
Apr 10, 2012, 11:27:21 AM4/10/12
to js...@googlegroups.com
...acho que sou "obrigado" a concordar,

porque,  eu me lembro quando eu adotei essa abordagem que ela resolvia os dois problemas citados por vc´s:
 a)esperar o HTML carregar e 
 b)não bloquear a reenderização(ajudando na otimização).

e, de longe, é a solução mais simples e enxuta.
(bom assunto essa para discussão)

flaviomicheletti

unread,
Apr 10, 2012, 11:29:51 AM4/10/12
to js...@googlegroups.com
ia me esquecendo... o artigo e o blog são muito bons, vale apena conferir.

flaviomicheletti

unread,
Apr 10, 2012, 11:34:39 AM4/10/12
to js...@googlegroups.com
Putz, artigo ninja, muito bom. valeu.

Confesso que o modo legado apresentado está obscuro para mim,
vou pesquisar na fonte indicada.

Aquele "/in/" ainda não tinha visto.

Suissa

unread,
Apr 10, 2012, 12:09:55 PM4/10/12
to js...@googlegroups.com

Isso depende muito do tipo de sistema, pois existem sistemas que precisam ter a ação nos botões logo qnd aparecem, neste caso é melhor aguardar o carregamento do JS.

flaviomicheletti

unread,
Apr 10, 2012, 1:18:07 PM4/10/12
to js...@googlegroups.com
Detalhe: no final do documento aonde?

antes da tag </body>   ...estou usando esta aqui!
antes da tag </html>
ou no final de tudo?

Em segunda-feira, 9 de abril de 2012 15h51min36s UTC-3, Thiago Avelino escreveu:

Leandro Grillo

unread,
Apr 10, 2012, 10:54:11 AM4/10/12
to js.pro
foge? oO

On 10 abr, 11:52, flaviomicheletti <flaviomichele...@hotmail.com>
wrote:
> Bem lembrado Thiago,
>
> Fiz isso também por um bom tempo, mas penso que foge das boas práticas.
>
> Em segunda-feira, 9 de abril de 2012 15h51min36s UTC-3, Thiago Avelino
> escreveu:
>
>
>
>
>
>
>
>
>
> > Se você colocar a chamada do Javascript no final da pagina ele só vai
> > carregar após passar pela chamada, sendo assim ele só vai carregar depois
> > de processar o HTML.
>
> > []'s
>
> > --
> > Thiago Avelino
> >www.avelino.us
> >www.twitter.com/avelino0
> > +55 11 81574800
>
> > 2012/4/9 flaviomicheletti <flaviomichele...@hotmail.com>
>
> >> Não sei se essa dúvida cabe aqui...
>
> >> Qual a forma mais adequada de esperar o HTML ser carregado
> >> para executar o Js (sem o uso de bibliotecas)?
>
> >> Eu estava pesquisando as formas de esperar o html ser
> >> totalmente carregado para depois executar o JS, então
> >> eu lembrei que na escola antiga se fazia assim
>
> >> <body onload="JS"... Eu canssei de fazer isso e sei que hoje
> >> não devemos fazer mais assim
>
> >> Em alguns livros sobre JS é muito usado o seguinte código:
>
> >> function faz_algo(){
> >> ...
> >>  }
> >> windown.load = faz_algo;
>
> >> Já o Kevin e o Cameron em seu livro "Simple Javscript"
> >> sugerem que a utilização de uma função do tipo "VUDU"
> >> (não me perguntem o que eles quiseram dizer com isso, rs)
> >> mas eu reparei que a função VUDU que eles se referem
> >> acrescenta um receptor de eventos adinvinha em quem?
> >> No evento load do objeto window.
>
> >> Obs: Essa função faz parte de uma biblioteca chamada Core
> >> que acompanha o livro e que eu coloquei no JSbin<http://jsbin.com/adaham/2/edit#javascript>

Thiago Avelino

unread,
Apr 10, 2012, 3:04:42 PM4/10/12
to js...@googlegroups.com
Geralmente uso antes do </html>
--
Reply all
Reply to author
Forward
0 new messages