2009-06-16 5 views
0

Si j'ai une page qui est généré en utilisant PHP, puis modifié à l'aide JS qui fonctionne grâce:Peut-on cacher le chargement de javascript de l'utilisateur?

window.onload=myFunction;

Ensuite, l'utilisateur voit la page d'origine, qui apparaît flick autour comme le code de js s'exécuter et ajoute ses propres bits sur la page.

Y a-t-il un moyen d'éviter que l'utilisateur puisse voir ce processus, ou au moins le rendre moins évident pour lui? Peut-être existe-t-il une méthode plus appropriée pour charger le javascript que window.onload (celle qui peut commencer à fonctionner pendant le téléchargement des images)?

Répondre

3

je recommande les premiers réglages une classe sur le corps qui permet de basculer la visibilité de certains éléments. Ensuite, lorsque le script se termine, vous pouvez supprimer cette classe et afficher toutes les informations dont vous avez besoin. Vous pouvez même utiliser la classe "loading" pour montrer un fond de fantaisie, comme un cercle de points dans Mozilla.

Certains projets utilisent une autre méthode de chargement de scripts au lieu de "onLoad". D'abord vous créez un tableau global, disons, nommé "domReady".

window.domReady = []; 

Et quand vous avez besoin d'ajouter une fonction qui sera exécutée sur la charge de la page, il vous suffit pousser dans ce tableau:

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

Et à la dernière ligne du document que vous mettez la fonction qui se déroulera toutes les procédures poussées:

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

Depuis ce sera la dernière ligne du document avant la balise de fermeture, le DOM sera prêt, et vous ne devrez pas attendre jusqu'à ce que toutes les images sont chargées .

0

OK Je trouve cette petite pépite de jquery qui fonctionne un régal:

$(document).ready(function() { 
    //Call your function here 
}); 
+1

vous utilisez jquery, alors? Je vais mettre à jour les balises .... –

+2

Vous pouvez raccourcir cela en utilisant $ (function() { // Votre code ici }); – OneSHOT

Questions connexes