الفرق بين المراجعتين ل"JavaScript/Document/readyState"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(إضافة الصّفحة)
 
ط (تنسيق)
سطر 9: سطر 9:
 
يُمكن للخاصيّة أن تحمِل القيم التّاليّة:
 
يُمكن للخاصيّة أن تحمِل القيم التّاليّة:
  
* loading
+
* <code>"loading"</code>
 
: المُستند لا يزال قيد التّحميل
 
: المُستند لا يزال قيد التّحميل
* interactive
+
* <code>"interactive"</code>
 
: تحميل المُستند قد انتهى، لكنّ الموارد الفرعيّة كالصّور وصفحات الأنماط والأطر لا تزال قيد التّحميل  
 
: تحميل المُستند قد انتهى، لكنّ الموارد الفرعيّة كالصّور وصفحات الأنماط والأطر لا تزال قيد التّحميل  
* complete
+
* <code>"complete"</code>
: انتهى تحميل المُستندِ وجميع موارِده الفرعيّة. هذه الحالة تُشير إلى أنّ الحدث load سيُطلَق فورًا.
+
: انتهى تحميل المُستندِ وجميع موارِده الفرعيّة. هذه الحالة تُشير إلى أنّ الحدث <code>load</code> سيُطلَق فورًا.
  
يُطلَق الحدث readystatechange على كائن المُستند document عند كلّ تغيّر لقيمة هذه الخاصيّة.
+
يُطلَق الحدث <code>readystatechange</code> على كائن المُستند <code>[[JavaScript/Document|document]]</code> عند كلّ تغيّر لقيمة هذه الخاصيّة.
  
 
==أمثلة==
 
==أمثلة==
سطر 26: سطر 26:
 
     break;
 
     break;
 
   case "interactive":
 
   case "interactive":
     // اكتمَل تحميل المُستند، ويُمكننا الآن الوصول مكوّنات
+
     // اكتمَل تحميل المُستند، ويُمكننا الآن الوصول إلى مكوّنات
 
     // DOM
 
     // DOM
 
     var span = document.createElement("span");
 
     var span = document.createElement("span");
سطر 39: سطر 39:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
استخدام الخاصيّة كبديلٍ عن الحدث DOMContentLoaded:
+
استخدام الخاصيّة كبديلٍ عن الحدث <code>DOMContentLoaded</code>:
 
<syntaxhighlight lang="javascript">
 
<syntaxhighlight lang="javascript">
 
// alternative to DOMContentLoaded event
 
// alternative to DOMContentLoaded event
سطر 49: سطر 49:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
استخدام الخاصيّة كبديلٍ عن الحدث load:
+
استخدام الخاصيّة كبديلٍ عن الحدث <code>load</code>:
 
<syntaxhighlight lang="javascript">
 
<syntaxhighlight lang="javascript">
 
// alternative to load event
 
// alternative to load event
سطر 59: سطر 59:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
استعمال الحدث readystatechange كمُنصِت أحداث (event listener) لإدخال أو تعديل الـDOM قبل الحدث DOMContentLoaded:
+
استعمال الحدث <code>readystatechange</code> كمُنصِت أحداث (event listener) لإدخال أو تعديل الـDOM قبل الحدث <code>DOMContentLoaded</code>:
  
 
<syntaxhighlight lang="javascript">
 
<syntaxhighlight lang="javascript">
سطر 91: سطر 91:
  
 
==انظر أيضا==
 
==انظر أيضا==
* الحدث [[JavaScript/Events/readystatechange|readystatechange]]
+
* الحدث <code>[[JavaScript/Events/readystatechange|readystatechange]]</code>
* الحدث [[JavaScript/Events/DOMContentLoaded|DOMContentLoaded]]
+
* الحدث <code>[[JavaScript/Events/DOMContentLoaded|DOMContentLoaded]]</code>
* الحدث [[JavaScript/Events/load|load]]
+
* الحدث <code>[[JavaScript/Events/load|load]]</code>
  
 
==مصادر ومواصفات==
 
==مصادر ومواصفات==

مراجعة 19:03، 21 مارس 2018

تصِفُ الخاصيّة Document.readyState حالة تحميل المُستند.

البنية العامة

var string = document.readyState;

القيم

يُمكن للخاصيّة أن تحمِل القيم التّاليّة:

  • "loading"
المُستند لا يزال قيد التّحميل
  • "interactive"
تحميل المُستند قد انتهى، لكنّ الموارد الفرعيّة كالصّور وصفحات الأنماط والأطر لا تزال قيد التّحميل
  • "complete"
انتهى تحميل المُستندِ وجميع موارِده الفرعيّة. هذه الحالة تُشير إلى أنّ الحدث load سيُطلَق فورًا.

يُطلَق الحدث readystatechange على كائن المُستند document عند كلّ تغيّر لقيمة هذه الخاصيّة.

أمثلة

الحالات المُختلفة لجاهزيّة المُستند:

switch (document.readyState) {
  case "loading":
    // لا يزال المُستند قيد التّحميل
    break;
  case "interactive":
    // اكتمَل تحميل المُستند، ويُمكننا الآن الوصول إلى مكوّنات
    // DOM
    var span = document.createElement("span");
    span.textContent = "A <span> element.";
    document.body.appendChild(span);
    break;
  case "complete":
    // اكتمَل تحميل الصّفحة بالكامِل
    console.log("أول قاعدة في صفحات الأنماط هي " + document.styleSheets[0].cssRules[0].cssText);
    break;
}

استخدام الخاصيّة كبديلٍ عن الحدث DOMContentLoaded:

// alternative to DOMContentLoaded event
document.onreadystatechange = function () {
  if (document.readyState === "interactive") {
    initApplication();
  }
}

استخدام الخاصيّة كبديلٍ عن الحدث load:

// alternative to load event
document.onreadystatechange = function () {
  if (document.readyState === "complete") {
    initApplication();
  }
}

استعمال الحدث readystatechange كمُنصِت أحداث (event listener) لإدخال أو تعديل الـDOM قبل الحدث DOMContentLoaded:

document.addEventListener('readystatechange', event => {
  if (event.target.readyState === "interactive") {
    initLoader();
  }
  else if (event.target.readyState === "complete") {
    initApp();
  }
});

دعم المتصفحات

الميزة Chrome Internet Explorer Firefox Opera Safari
الدعم الأساسي 5 4 4 11 5

انظر أيضا

مصادر ومواصفات