Pergunta

Se eu tenho uma página que é gerada usando PHP e depois modificada usando JS que corre usando:

window.onload=myFunction;

Em seguida, o usuário vê a página original, que, em seguida, parece apertar em torno de como o código js é executado e adiciona seus próprios pedaços até a página.

Existe uma maneira de evitar que o usuário seja capaz de ver este processo, ou, pelo menos, torná-lo menos óbvio para eles? Talvez haja um método mais adequado de carregar o javascript que window.onload (que pode começar a trabalhar como as imagens etc. está baixando)?

Foi útil?

Solução

Eu recomendaria primeiras configurações alguma classe no corpo que irá alternar a visibilidade de alguns elementos.

<body class="loading"> .... </body>

Então, quando o script terminar de carregar, você pode remover esta classe e mostrar todas as coisas que você precisa. Você ainda pode usar a classe "carregamento" para mostrar algum fundo de fantasia, como um círculo de giro de pontos em Mozilla.

Além disso, alguns projectos utilizar outro método de scripts de carregamento em vez de "onLoad". Primeiro você cria uma matriz global, digamos, com o nome "domReady".

window.domReady = [];

E quando você precisa adicionar alguma função que será executado no carregamento da página, basta empurrá-lo para essa matriz:

window.domReady.push( function foo(){ alert('Hey!'); } );

E na última linha do documento que você colocar a função que irá executar todos os procedimentos empurradas:

for (procedure in window.domReady) {
    window.domReady[procedure].call();
}

Uma vez que vai ser a última linha do documento antes da tag de fechamento, o DOM estará pronto, e você não terá que esperar até que todas as imagens são carregadas.

Outras dicas

OK eu encontrei esta pequena pepita de jquery que funciona um tratamento:

$(document).ready(function() {
  //Call your function here
});
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top