ملاحظة: هذه المقالة مقتبسة من كتاب "أسرار جافا سكريبت نينجا" للكاتب جون ريسيج ، وقد قمت بترجمته ليتعلمه الجميع فقط، يرجى تصحيحي إذا كان هناك أي نقص في الترجمة.
تشرح هذه المقالة بشكل أساسي المؤقت من الجوانب التالية:
الموقتات هي شيء لا نفهمه كثيرًا وغالبًا ما يتم إساءة استخدامه، فهو أحد ميزات JavaScript. في الواقع، يمكن أن يساعدنا كثيرًا في تطوير التطبيقات المعقدة. توفر الموقتات القدرة على تأخير تنفيذ أجزاء التعليمات البرمجية بشكل غير متزامن. جافا سكريبت بطبيعتها ذات ترابط واحد (يمكن تشغيل جزء فقط من كود js خلال نطاق زمني معين) توفر لنا الموقتات طريقة لتجنب هذا القيد، وبالتالي فتح طريقة أخرى لتنفيذ التعليمات البرمجية.
ومن المثير للاهتمام، خلافًا للاعتقاد السائد، أن أجهزة ضبط الوقت ليست جزءًا من لغة JavaScript، ولكنها جزء من الأساليب والكائنات التي يقدمها المتصفح. هذا يعني أنه إذا اخترت تشغيله في بيئة غير متصفح، فمن المحتمل أن الموقت لن يكون موجودًا وسيتعين عليك تنفيذ الإصدار الخاص بك باستخدام وظائف محددة (مثل سلاسل Rhino).
1. كيف يعمل الموقت
في الأساس، من المهم أن نفهم كيفية عمل أجهزة ضبط الوقت. في كثير من الأحيان، لا يكون سلوك المؤقت بديهيًا لأنه موجود في موضوع منفصل، فلنبدأ باختبار ثلاث وظائف، لكل منها لدينا الفرصة لبناء المؤقت والتحكم فيه.
من أجل فهم كيفية عمل أجهزة ضبط الوقت داخليًا، هناك مفهوم مهم يجب مناقشته: التأخير غير مضمون. نظرًا لأن كل JavaScript في المتصفح يعمل في سلسلة رسائل واحدة، فإن الأحداث غير المتزامنة (مثل نقرات الماوس والمؤقتات) لن تعمل إلا عندما تكون هناك حالة مفتوحة أثناء التنفيذ. يوضح المثال التالي هذه المشكلة جيدًا:
هناك الكثير من المعلومات التي يجب استيعابها في هذا المخطط، وفهمها بالكامل سيعطيك فكرة أفضل عن تنفيذ JS غير المتزامن، والمخطط ذو بعد واحد، في الاتجاه الرأسي هو الوقت (ساعة الحائط)، ويقاس بالمللي ثانية. يمثل المربع الأزرق نسبة تنفيذ js. على سبيل المثال، يستغرق تشغيل أول كتلة جافا سكريبت حوالي 18 ثانية، وتستغرق النقرة بالماوس حوالي 11 ثانية، وهكذا.