"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment puis-je déterminer l’état de préparation du DOM sans m’appuyer sur des frameworks ?

Comment puis-je déterminer l’état de préparation du DOM sans m’appuyer sur des frameworks ?

Publié le 2024-11-09
Parcourir:462

How Can I Determine DOM Readiness Without Relying on Frameworks?

Document.isReady : une solution native pour la détection DOM Ready

La dépendance à l'égard de frameworks comme Prototype et jQuery pour la gestion des événements window.onload peut ne pas toujours être désirable. Cet article explore des méthodes alternatives pour déterminer l'état de préparation du DOM, notamment via l'utilisation de document.isReady.

Interrogation de Document.isReady

Pour les navigateurs modernes dotés d'API d'événements stables, le L'événement DOMContentLoaded fournit une méthode robuste pour gérer les événements prêts pour le DOM. Des implémentations comme celle-ci offrent une solution simple et efficace :

function fireOnReady() { /* ... */ }
if (document.readyState === 'complete') {
    fireOnReady();
} else {
    document.addEventListener("DOMContentLoaded", fireOnReady);
}

Propriété $.isReady de jQuery

jQuery propose une propriété non documentée, $.isReady, qui reflète l'état prêt du DOM en interne. L'utilisation de cette propriété permet des vérifications concises :

if($.isReady) {
    // DOM is ready
} else {
    // DOM is not yet ready
}

Il est crucial de noter que cette propriété reste non documentée et que sa disponibilité dans les futures versions de jQuery ne peut être garantie. Utilisez-le avec prudence et préparez-vous aux changements potentiels lors des mises à niveau.

Un extrait de code DOM personnalisé

Pour une compatibilité plus large avec les navigateurs, un extrait de code DOM personnalisé peut être utilisé. Inspiré de l'approche de Dustin Diaz, il vérifie le document.readyState à l'aide d'une expression régulière :

if( !/in/.test(document.readyState) ) {
    // document is ready
} else {
    // document is NOT ready
}

Cette méthode repose sur le fait que la sous-chaîne "in" est présente dans les états prêt "chargement" et "interactif" mais pas dans l'état "complet".

Déclaration de sortie Cet article est réimprimé à l'adresse : 1729390935. En cas d'infraction, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3