Peut-on cacher le chargement de javascript à l'utilisateur?
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.)?
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
});