Les valeurs CSS sont-elles disponibles lors de l'exécution de $(document).ready() ?
Question :
Pourquoi un script执行于$(document).ready sur une page avec un alignement de contenu dynamique parfois en retard ou dysfonctionnement ?
Réponse :
Selon les notes de version et la documentation de jQuery, $(document).ready() peut ne pas attendre que les valeurs CSS soient entièrement injectées dans le DOMAINE. Par conséquent, il est recommandé d'inclure tous les fichiers CSS dans le répertoire
avant toute référence de script.
Explication :
-
Chargement CSS asynchrone : Les fichiers CSS sont chargés de manière asynchrone, ce qui signifie que JavaScript peut s'exécuter avant CSS le rendu est terminé.
-
Dépendance CSS sur les calculs JS : Dans certains cas, les calculs JavaScript s'appuient sur des valeurs CSS pour déterminer les dimensions et le positionnement des éléments, ce qui peut entraîner des inexactitudes si les valeurs CSS ne sont pas encore disponibles.
-
Comportement spécifique au navigateur : Le comportement observé dans la question posée peut être lié à des comportements spécifiques du navigateur, tels que :
-
Internet Explorateur : Arrête parfois l'exécution de JS jusqu'à ce que le CSS externe soit chargé, surtout si le CSS est placé au-dessus de JS dans la page.
-
Autres navigateurs : Peut ne pas toujours interrompre l'exécution de JS même si CSS n'est pas complètement chargé.
Résolution :
Pour garantir que les valeurs CSS sont disponibles lorsque $(document).ready() s'exécute :
- Incluez toujours les fichiers CSS avant les références JavaScript dans le champ du document HTML.
- Si possible, envisagez de déplacer le script vers le bas de la page, une fois que tous les CSS et le contenu ont été chargés.
Remarques supplémentaires :
- Dans la plupart des cas, placer CSS au-dessus de JS résoudra les problèmes de performances liés à la dépendance CSS sur JS. calculs.
- Cependant, des comportements complexes spécifiques au navigateur liés au chargement asynchrone des ressources et à l'exécution de scripts peuvent encore se produire.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!
Déclaration:Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn