Question

Si j'ai une page générée à l'aide de PHP, puis modifiée à l'aide de JS, qui s'exécute à l'aide de:

window.onload = myFunction;

Ensuite, l'utilisateur voit la page d'origine, qui apparaît ensuite au fur et à mesure que le code js est exécuté et ajoute ses propres bits à la page.

Existe-t-il un moyen d’empêcher l’utilisateur de voir ce processus ou au moins de le rendre moins évident? Peut-être existe-t-il une méthode plus appropriée pour charger le javascript que window.onload (une méthode qui peut commencer à fonctionner pendant le téléchargement des images, etc.)?

Était-ce utile?

La solution

Je recommanderais d’abord de définir une classe sur le corps qui basculera la visibilité de certains éléments.

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

Ensuite, lorsque le script a fini de se charger, vous pouvez supprimer cette classe et afficher tout ce dont vous avez besoin. Vous pouvez même utiliser le " chargement " classe pour montrer un fond fantaisie, comme un cercle de points tournoyant dans Mozilla.

De plus, certains projets utilisent une autre méthode de chargement de scripts à la place de "onLoad". Commencez par créer un tableau global, nommé "domReady".

window.domReady = [];

Et lorsque vous avez besoin d'ajouter une fonction à exécuter au chargement de la page, il vous suffit de l'insérer dans ce tableau:

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

Et à la dernière ligne du document, vous mettez la fonction qui exécutera toutes les procédures poussées:

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

Puisqu'il s'agira de la dernière ligne du document avant la balise de fermeture, le DOM sera prêt et vous n'aurez pas à attendre que toutes les images soient chargées.

Autres conseils

OK, j'ai trouvé cette petite pépite de jQuery qui fonctionne très bien:

$(document).ready(function() {
  //Call your function here
});
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top