Je rencontre un comportement étrange avec Firefox et Dojo. J'ai une page html avec ces lignes dans la < tête > section:dojo.require() empêche Firefox de rendre la page
...
<script type="text/javascript" src="dojo.js" djconfig="parseOnLoad: true, locale: 'de'"></script>
<script type="text/javascript">
dojo.require("dojo.number");
</script>
...
Parfois, la page se charge normalement. Mais parfois ce ne sera pas. Firefox récupérera toute la page html mais ne la rendra pas. Je ne vois qu'une fenêtre grise. Après quelques expériences, j'ai compris que le problème de rendu avait quelque chose à voir avec le temps de chargement du html (0). Firefox commence à évaluer la page html en le chargeant. Si la page prend trop de temps à charger le javascript ci-dessus sera exécuté AVANT que le html ne finisse le chargement.
Si cela se produit, j'obtiendrai la fenêtre grise. Conseiller à Firefox de me montrer le code source de la page affichera le code html complet correct. MAIS: si j'enregistrer la page sur le disque (Fichier-> Enregistrer sous ...) le code html sera tronquée et la partie ci-dessus ressemblera à ceci:
...
<script type="text/javascript" src="dojo.js" djconfig="parseOnLoad: true, locale: 'de'"></script>
<script type="text/javascript">
dojo.require("dojo.number");
</script></head><body></body></html>
Cela explique pourquoi je peux voir une zone grise. Mais pourquoi ce code apparaît-il ici? Je suppose que la méthode require() de Dojo fait quelque chose de "maléfique". Mais je ne peux pas comprendre quoi. Il n'y a pas d'écriture.document ("</tête > <corps> </corps > </html >"); dans le code Dojo. Je l'ai vérifié.
Le problème serait résolu, si je devais placer le dojo.require ("dojo.number"); déclaration dans l'événement window.load:
<script type="text/javascript">
window.load=function() {
dojo.require("dojo.number");
}
</script>
Mais je suis curieux de savoir pourquoi cela se produit. Existe-t-il une fonction Javasctript qui force Firefox à arrêter l'évaluation de la page? Est-ce que Dojo fait quelque chose de "mauvais"? Quelqu'un peut-il m'expliquer ce comportement?
EDIT: Dojo 1.3.1, aucune erreur ou avertissement JS.
Avez-vous essayé d'installer Firebug et de voir comment la page se charge réellement? Aussi quelle version de dojo utilisez-vous? – Kitson
En plus de regarder comment la page se charge dans le panneau net Firebug, avez-vous essayé de vérifier s'il y a des erreurs JS? – Annie
Firebug m'a permis de comprendre que le timing le déclencherait. Mais il n'y a pas d'autres informations utiles. –