"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية تحديد جاهزية DOM بدون أطر عمل؟

كيفية تحديد جاهزية DOM بدون أطر عمل؟

تم النشر بتاريخ 2024-12-23
تصفح:128

How to Determine DOM Readiness without Frameworks?

فهم جاهزية DOM بدون أطر عمل

عند تطوير تطبيقات الويب، يعد تحديد متى يكون نموذج كائن المستند (DOM) جاهزًا للمعالجة أمرًا بالغ الأهمية. في حين أن أطر العمل مثل jQuery تقدم مستمعين ReadyState، فإن هذه المقالة تستكشف طرقًا بديلة لاكتشاف جاهزية DOM.

الوصول المباشر إلى حالة DOM

بدلاً من الاعتماد على أطر العمل، يمكنك مباشرة تحقق من خاصية حالة جاهزية المستند:

if (document.readyState === 'Complete') { // DOM جاهز
if (document.readyState === 'complete') {
  // DOM is ready
}

التحقق من جاهزية DOM على أساس الحدث

تتمثل الطريقة الأكثر استخدامًا عبر المتصفحات في الاستماع إلى حدث DOMContentLoaded، والذي يتم تشغيله عندما يكون DOM جاهزًا المعالجة:

وظيفة fireOnReady() { // ... } إذا (document.readyState === 'مكتمل') { fireOnReady(); } آخر { document.addEventListener("DOMContentLoaded", fireOnReady);
function fireOnReady() {
  // ...
}
if (document.readyState === 'complete') {
  fireOnReady();
} else {
  document.addEventListener("DOMContentLoaded", fireOnReady);
}
الاستفادة من خاصية isReady غير الموثقة في jQuery

على الرغم من أنها غير موثقة، إلا أن jQuery يكشف عن خاصية isReady التي تشير داخليًا إلى حالة استعداد DOM:

if ($.جاهز) { // DOM جاهز } آخر { // DOM ليس جاهزًا بعد

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

مستوحى من مقتطف Dustin Diaz، يمكنك إنشاء مستمع DOM صغير جاهز كما يلي:

if (!/in/.test(document.readyState)) { // الوثيقة جاهزة } آخر { // الوثيقة ليست جاهزة

يستفيد هذا الفحص من حقيقة أن قيمة ReadyState تحتوي على "in" في حالات التحميل السابقة، مما يجعلها مؤشرًا موثوقًا لجاهزية DOM.
بيان الافراج يتم استنساخ هذه المقالة في: 1729390816 إذا كان هناك أي انتهاك ، فيرجى الاتصال بـ [email protected] لحذفه.
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3