يعتبر تحميل JavaScript المتأخر وسيلة لتقليل زمن الحظر الكلي (TBT) عن طريق تأجيل تحميل ملفات JavaScript التي تعيق عرض محتوى الصفحة بواسطة المتصفح. ببساطة، من خلال إضافة defer أو async إلى ملفات السكربت غير الحرجة، يمكنك تقليل فترة قفل الخيط الرئيسي، مما يجعل المستخدم يرى الصفحة بشكل أسرع ويكون قادرًا على التفاعل معها في وقت مبكر، مما يحسن من مقاييس Core Web Vitals. لتنفيذ تحميل JavaScript المتأخر على موقعك، يجب أولاً تحديد الملفات التي تعتبر حرجة، وعادةً ما يجب استخدام defer في السكربتات التي تعتمد على الأخرى، بينما يُفضل استخدام async في السكربتات الخارجية المستقلة، ويجب قياس قيم TBT بعد التعديل باستخدام أدوات مثل PageSpeed Insights وLighthouse وChrome DevTools.
غالبًا ما تكون مشاكل أداء المواقع الحديثة ناتجة عن الاستخدام غير المنضبط لـ JavaScript بدلاً من الصور. إذا تم تحميل فلاتر المنتجات، والدعم المباشر، وأكواد التحليل، وإضافات التعليقات، وأدوات اختبار A/B، وملفات السكربت الخاصة بالثيم في نفس الوقت على موقع تجارة إلكترونية، فإن الخيط الرئيسي للمتصفح سيظل مشغولًا لفترة طويلة. تظهر هذه المشكلة بشكل خاص على الأجهزة المحمولة، حيث قد يرى المستخدم العنوان على الشاشة ولكنه لا يحصل على رد عند النقر على القائمة؛ وقد يظهر في تقرير Lighthouse زمن الحظر الكلي (TBT) مرتفعًا.
في هذا الدليل، سنستعرض كيف تعمل خصائص defer وasync، ومتى ينبغي استخدامها، وكيف يمكن تطبيقها في مشاريع WordPress والمشاريع البرمجية الخاصة، وما يجب الانتباه إليه أثناء القياس، والنتائج الواقعية الممكنة لتقليل زمن الحظر الكلي خطوة بخطوة. كما سنناقش كيف تدعم خيارات الاستضافة الصحيحة، وشبكات توزيع المحتوى (CDN)، والشهادات الأمنية (SSL)، والتخزين المؤقت، تحسين JavaScript. باقات استضافة الويب Hostragons
ما هو TBT ولماذا يتعلق بشكل وثيق بـ JavaScript؟
TBT هو اختصار لعبارة "Total Blocking Time" ويقيس الوقت الذي يستغرقه الخيط الرئيسي للمتصفح ليكون جاهزًا لتفاعل المستخدم. في اختبارات مختبر Lighthouse، تزيد المهام الطويلة التي تتجاوز 50 ملي ثانية بين "First Contentful Paint" و"Time to Interactive" من قيمة TBT. على سبيل المثال، إذا كانت مهمة JavaScript تستغرق 180 ملي ثانية، فإن الـ 130 ملي ثانية التي تلي الـ 50 ملي ثانية الأولى تساهم في زمن الحظر.
تعتبر هذه المقياس حاسمًا من حيث تجربة المستخدم. عندما ينقر الزائر على القائمة أو زر إضافة إلى السلة أو مربع البحث بعد فتح الصفحة، إذا كان المتصفح لا يزال يقوم بتشغيل JavaScript، فإن التفاعل سيتأخر. قد يدرك المستخدم ذلك على أنه تجميد أو تأخر في الاستجابة أو موقع معطل. في معايير SEO لعام 2026، رغم أن جوجل لا تختصر تجربة الصفحة إلى درجة واحدة، إلا أن المواقع التي تقدم تفاعلات سريعة ومستقرة توفر مزايا من حيث رضا المستخدم ومعدل التحويل.
أعراض ارتفاع TBT الشائعة
- ارتفاع قيمة TBT في تقرير PageSpeed Insights على الأجهزة المحمولة فوق 300 ملي ثانية.
- ظهور تحذيرات "Reduce JavaScript execution time" أو "Minimize main-thread work" في تقرير Lighthouse.
- استجابة متأخرة للقائمة أو العناصر الأخرى على الصفحة حتى لو كانت مرئية.
- ظهور أكواد الإعلانات أو الدعم المباشر أو تحليلات الطرف الثالث بتكلفة مرتفعة في التقرير.
- تأخر في التمرير والنقر، خاصة على أجهزة Android ذات المستوى المبدئي.
من المقبول عمومًا اعتبار قيمة TBT أقل من 200 ملي ثانية هدفًا جيدًا لمعظم مواقع المحتوى. في واجهات التجارة الإلكترونية أو SaaS الأكثر تعقيدًا، قد لا تكون defer وasync كافيتين للوصول إلى هذا الهدف؛ بل قد تحتاج أيضًا إلى تقسيم الكود، وإزالة الحزم غير الضرورية، وتحسين زمن استجابة الخادم، وتعديل CSS الحرجة. ومع ذلك، فإن تحميل JavaScript المتأخر يعتبر أحد أولى التحسينات التي يجب تنفيذها في معظم المشاريع.
ما هو defer وasync؟
عند استخدام وسم السكربت في HTML بشكل افتراضي، يتوقف المتصفح عن تحليل HTML لتحميل ملف JavaScript، ثم يقوم بتشغيله، وبعد ذلك يستمر في بناء الصفحة. هذه السلوكيات ضرورية أحيانًا للسكربتات الحرجة؛ ولكن عند استخدامها لكل ملف، فإنها تؤدي إلى تأخير غير ضروري. تقوم خصائص defer وasync بتغيير هذا السلوك، حيث تربط تحميل الملف وتشغيله بقواعد مختلفة.
كيف يعمل defer؟
عندما يتم إضافة defer إلى ملف السكربت، يتم تحميله في الخلفية أثناء استمرار تحليل HTML؛ ولكن يتم تشغيله بعد تحليل مستند HTML بالكامل. أيضًا، تحافظ ملفات السكربت المتعددة المستخدمة defer على ترتيب كتابتها في HTML. لذا، فهي غالبًا ما تكون خيارًا آمنًا في ملفات JavaScript المعتمدة على بعضها البعض. على سبيل المثال، إذا كان من المقرر تشغيل مكتبة أولًا ثم السكربت المتعلق بها، فإن defer يعتبر خيارًا مناسبًا.
مثال على الاستخدام هو: <script defer src=/js/app.js></script>. في هذا الاستخدام، يتم تحميل ملف app.js دون عرقلة الرسم الأول للصفحة، وعندما يصبح DOM جاهزًا، يتم تشغيله بالترتيب. تتلقى المتصفحات الحديثة دعمًا جيدًا لـ defer، وهو أداة موثوقة لتحسين السكربتات الكلاسيكية.
كيف يعمل async؟
عندما يتم إضافة async إلى السكربت، يتم تحميله أيضًا أثناء استمرار تحليل HTML؛ ولكن بمجرد انتهاء التحميل، يتم تشغيله فورًا. في هذه اللحظة، قد يتوقف تحليل HTML لفترة قصيرة. لا يضمن async ترتيب التنفيذ بين الملفات؛ حيث يتم تنفيذ أول ملف يتم تحميله أولاً. لذا، فإنه أكثر ملاءمة للسكربتات المستقلة مثل التحليلات، والإعلانات، وأكواد التتبع، والأدوات الخارجية، أو السكربتات الاجتماعية.
مثال على الاستخدام: <script async src=/js/analytics.js></script>. لا ينبغي أن ينتظر هذا الملف تشغيل سكربت محلي آخر قبل ذلك. إذا كان analytics.js مرتبطًا بمتغير تم تعريفه لاحقًا في الصفحة أو بمكتبة أخرى مثل jQuery، يمكن أن يؤدي استخدام async إلى حدوث أخطاء. لذلك، يعد async سريعًا ولكنه يتطلب تصنيفًا دقيقًا.
جدول مقارنة بين defer وasync
| الميزة | defer | async |
|---|---|---|
| هل تعيق تحليل HTML أثناء التحميل؟ | لا، يتم تحميل الملف في الخلفية. | لا، يتم تحميل الملف في الخلفية. |
| وقت التنفيذ | بعد الانتهاء من تحليل HTML. | بمجرد تحميل الملف. |
| ضمان الترتيب | يوجد، يتم الحفاظ على ترتيب HTML. | لا يوجد، يتم تنفيذ أول ملف يتم تحميله أولاً. |
| الاستخدام الأمثل | سكربتات الثيم، الوحدات المعتمدة، ملفات التطبيق الرئيسية. | تحليلات مستقلة، إعلانات، أكواد بكسل، وأدوات خارجية. |
| المخاطر | قد تسبب تأخيرات في الأكواد التي يتعين تشغيلها قبل أن يصبح DOM جاهزًا. | قد تؤدي إلى حالات سباق وأخطاء في الملفات المعتمدة. |
| تأثير على TBT | عادةً ما يكون آمنًا ومتوازنًا في تقليل الحظر عند التحميل الأول. | فعال في فصل الأحمال الخارجية في وقت مبكر. |
القاعدة العملية هي: إذا كان ملفك يحتاج إلى العمل بالتسلسل، ابدأ بـ defer. إذا كان ملفك مستقلاً تمامًا، ففكر في async. إذا كنت غير متأكد، جرب defer في بيئة staging أولاً، واختبر الأخطاء في وحدة التحكم والتفاعلات الحرجة. دليل بيئة الاختبار والنسخ الاحتياطي
خطة تطبيق خطوة بخطوة لتحميل JavaScript المتأخر
قد يبدو أن إضافة defer أو async بشكل عشوائي إلى جميع وسوم السكربت قد ترفع النتيجة على المدى القصير، ولكن قد يؤدي ذلك إلى كسر الوظائف الحرجة مثل الدفع، والبحث، والقوائم، والتحقق من النماذج، أو السلة على الموقع المنتج. يجب استخدام دورة القياس، والتصنيف، والتغييرات الصغيرة، والاختبار، والمراقبة لتطبيق صحي.
1. قياس الأداء الحالي
قم بإنشاء قيمة أساسية قبل البدء. سجل درجات PageSpeed Insights للأجهزة المحمولة وسطح المكتب. لاحظ قيم TBT وFirst Contentful Paint وLargest Contentful Paint وSpeed Index في تقرير Lighthouse. افحص الخيط الرئيسي في قسم الأداء في أدوات Chrome DevTools؛ حيث تظهر الكتل الصفراء الطويلة غالبًا تكلفة تحليل JavaScript وتجميعه وتشغيله.
يمكنك إعداد جدول بداية مثالي كما يلي: TBT المحمولة 780 ملي ثانية، وقت تنفيذ JavaScript 2.8 ثانية، عمل الخيط الرئيسي 4.5 ثانية. إذا انخفض TBT المحمول بعد التحسين إلى 280 ملي ثانية، فستحقق تحسينًا بنحو 64%. تسهل هذه السجلات الملموسة رؤية التغييرات التي نجحت داخل الفريق.
2. قم بإنشاء جرد للسكريبتات
قم بإدراج جميع ملفات JavaScript التي تم تحميلها في كود المصدر للصفحة أو في قسم الشبكة. حدد مصدر كل ملف، وحجمه، ومتى يحتاج إليه، والاعتماديات. سيكون من الأسهل تصنيف الملفات إلى المجموعات التالية:
- السكريبتات الحرجة: الأكواد المطلوبة فورًا للعرض الأول أو التنقل الأساسي.
- سكريبتات محلية معتمدة: الثيمات، والمزلقات، والفلاتر، والمعارض، ووحدات التطبيق.
- سكريبتات خارجية مستقلة: التحليلات، والإعلانات، وأكواد البكسل، والدردشة، ومكونات الوسائط الاجتماعية.
- سكريبتات غير ضرورية أو قديمة: الملفات المتبقية من الإضافات غير المستخدمة.
- سكريبتات يجب تحميلها بشكل مشروط: الأكواد المطلوبة فقط في صفحات معينة مثل التحقق من النموذج في صفحة الاتصال.
قد يكون أفضل تحسين في بعض الأحيان هو إزالة سكربت غير ضروري، وليس فقط إضافة defer. يمكن أن يولد ملف مضغوط بحجم 90 كيلوبايت تكلفة تتجاوز 300 ملي ثانية على جهاز محمول، بما في ذلك التحليل والتشغيل. لذلك، من الأفضل تنظيف الملفات غير الضرورية أولاً، ثم تأخير المتبقية.
3. حدد الملفات التي ستستخدم defer
عادةً ما تكون سكربتات الثيم الرئيسية، وسلوكيات القوائم، وأكواد المزلقات، ووحدات معرض المنتجات، وملفات حزمة التطبيق مرشحة جيدة لاستخدام defer. ولكن الشرط المهم هنا هو أن السكربت لا يعتمد بشكل مفرط على أساليب قديمة مثل document.write، وأنه يمكن تشغيله بعد جاهزية DOM.
في ثيم WordPress، قد تحتوي jquery-migrate، وملف الثيم الرئيسي، وملفات السكربت الخاصة بالإضافات على اعتمادات معقدة. تحويل نواة jQuery إلى async يعتبر مخاطرة في معظم المواقع؛ لأن العديد من الإضافات تنتظر ترتيب jQuery. بدلاً من ذلك، من الأفضل تطبيق defer بشكل محكوم على الملفات المعتمدة على jQuery، أو استخدام خيارات تحميل محسّنة على مستوى الإضافات. دليل تحسين سرعة ووردبريس
4. اختر الملفات التي ستستخدم async
يعتبر Google Analytics، وأكواد الإعلانات، وFacebook Pixel، وLinkedIn Insight Tag، وبعض أدوات الدردشة الخارجية، وأكواد المشاركة الاجتماعية مرشحات للاستخدام كـ async. ومع ذلك، ليست جميع سكربتات الطرف الثالث متساوية. قد ترغب بعض أدوات الدعم المباشر في إنشاء جلسة مستخدم بمجرد تحميل الصفحة، بينما قد تنتظر بعض أنظمة الإعلانات ترتيب حاوية معينة. لذلك، يجب مراجعة الوثائق.
غالبًا ما يكون جعل كود التحليل المستقل async لا يؤثر سلبًا على تجربة المستخدم. ومع ذلك، لتقليل خطر فقدان البيانات، تحقق من شروط التفعيل في التقارير في الوقت الفعلي. إذا كنت تستخدم مدير العلامات، بدلاً من تجميع جميع العلامات في حاوية واحدة، قم بتنظيم شروط التفعيل. على سبيل المثال، لا ينبغي تحميل سكربت تتبع التعليقات في الصفحات التي لا تحتوي على نموذج تعليقات، ولا يجب تحميل سكربت تفاعل المنتج في الصفحات التي لا تحتوي على صفحة منتج.
5. أضف تحميلًا مشروطًا بناءً على الأحداث
يعتبر defer وasync بداية جيدة؛ ولكن تحميل ملفات JavaScript بناءً على سلوك المستخدم يمكن أن يحدث تأثيرًا أكبر على TBT. يمكن تحميل صندوق الدعم المباشر ليس فور فتح الصفحة، ولكن عندما يبقى المستخدم لمدة 5 ثوانٍ أو ينقر على زر المساعدة. يمكن تحميل كود تضمين الخريطة عندما يقوم المستخدم بالتمرير إلى قسم الاتصال. يمكن استدعاء سكربت مشغل الفيديو عندما يضغط المستخدم على زر التشغيل.
تكون هذه الطريقة فعالة بشكل خاص في مواقع المحتوى والمواقع المؤسسية. لأن الزائر قد لا يحتاج إلى كل عنصر واجهة مستخدم في كل صفحة. يمكن أن يقلل إزالة 200 كيلوبايت من JavaScript من قيمة TBT بمئات الملي ثانية على المعالجات المحمولة الضعيفة.
6. اختبر وابدأ بالنشر بشكل تدريجي
بدلاً من تطبيق التغييرات مباشرة على الموقع المباشر، جربها في بيئة اختبار. قم بإجراء اختبار يدوي على الصفحات الحيوية مثل الصفحة الرئيسية، وصفحة الفئة، وصفحة المنتج أو الخدمة، وصفحة الاتصال، ونموذج تسجيل الدخول، وسير العمل للدفع. تحقق من وجود أخطاء في وحدة التحكم في المتصفح. تشير الأخطاء مثل "Cannot read property"، "is not defined"، و"undefined function" إلى مشكلة في الترتيب أو الاعتمادية.
انتقل إلى الإنتاج بشكل تدريجي. أولاً، قم بتحسين السكربتات الخارجية المستقلة، ثم انتقل إلى سكربتات الثيم. بعد كل تغيير، كرر تقرير Lighthouse بنفس الشبكة ومحاكاة الجهاز. لا تثق في قياس واحد؛ يعتبر متوسط ثلاث اختبارات نتيجة أكثر صحة.
ملاحظات حول تطبيق defer وasync في مواقع WordPress
في نظام WordPress، يتم تحميل ملفات JavaScript عبر وظيفة wp_enqueue_script من الثيمات والإضافات. اعتبارًا من عام 2026، يمكن تحديد استراتيجيات السكربت بشكل أكثر تحكمًا في إصدارات WordPress الحديثة. ومع ذلك، قد تسبب الثيمات القديمة، وإضافات بناء الصفحات، والإضافات غير المتوافقة صراعات.
إذا كنت تستخدم إضافة أداء، بدلاً من تأجيل جميع JavaScript بنقرة واحدة، قم بإنشاء قائمة استبعاد. يمكن أن تكون صفحة الدفع، وتسجيل الدخول، وشريط الإدارة، والتحقق من الأمان، وأكواد captcha حساسة. يجب اختبار قطع السلة، وأكواد بوابة الدفع، ومحددات التباين في موقع يستخدم WooCommerce. حلول استضافة WooCommerce
قد تكون التسلسلات العملية لـ WordPress كما يلي: أولاً، قم بإزالة الإضافات غير المستخدمة. ثم، اجعل ملفات الإضافات التي يجب تحميلها فقط في صفحات معينة مشروطة. بعد ذلك، جرب defer في سكربتات الثيم والإضافات. أخيرًا، استخدم async أو تحميلًا متأخرًا في الأكواد الخارجية المستقلة. تقلل هذه الطريقة من خطر حدوث كسر كبير في مرة واحدة.
ما يجب مراعاته في مشاريع البرمجيات الخاصة والأطر
في هياكل مثل React وVue وAngular وNext.js وNuxt أو ما شابه، لا يقتصر تحسين JavaScript على إضافة defer إلى وسم HTML. يعتبر حجم الحزمة، وتقسيم الكود، وtree shaking، والاستيراد الديناميكي، وتكلفة الترطيب عوامل حاسمة في TBT. إذا كانت الحزمة الواحدة كبيرة بحجم 700 كيلوبايت، حتى مع استخدام defer، يمكن أن يستمر الحظر لفترة طويلة خلال مرحلة التنفيذ.
في المشاريع البرمجية الخاصة، استخدم تقسيم الكود بناءً على المسار. عندما يكون المستخدم على الصفحة الرئيسية، يجب ألا يتم تحميل كود لوحة الإدارة، أو مكتبة الرسوم البيانية، أو محرر متقدم. قم باستدعاء المكونات الثقيلة باستخدام الاستيراد الديناميكي عند الحاجة. اكتشف الاعتماديات غير المستخدمة باستخدام أدوات تحليل الحزم. بدلاً من المكتبات الكبيرة مثل الرسوم البيانية أو الرسوم المتحركة، قم بتقييم البدائل الأخف.
يجب أن تكون حذرًا أيضًا في المشاريع التي تستخدم التقديم من جانب الخادم أو الإنتاج الثابت. قد يؤدي وصول HTML السريع إلى تنشيط مئات المكونات في نفس الوقت خلال مرحلة الترطيب، مما يزيد من قيمة TBT. تجنب JavaScript غير الضروري في المحتوى غير التفاعلي هو في صميم نهج الأداء لعام 2026.
علاقة الاستضافة وزمن استجابة الخادم وأداء JavaScript
يرتبط TBT مباشرة بوقت تنفيذ JavaScript في المتصفح؛ ولكن يمكن أن تؤثر بنية الاستضافة بشكل غير مباشر على النتائج. يمكن أن يؤدي زمن الاستجابة البطيء (TTFB)، وعدم وجود ضغط، وعدم دعم HTTP/2 أو HTTP/3، وضعف التخزين المؤقت، والتأخير الناتج عن الموقع البعيد إلى تأخير وصول ملفات JavaScript. عندما تصل الملفات في وقت متأخر، يزداد عمر دورة الصفحة وتضعف تجربة المستخدم.
شهادات SSL Hostragons استعلام عن النطاق Hostragons
على سبيل المثال، يمكن أن ينخفض حجم نفس ملف JavaScript من 320 كيلوبايت بدون ضغط إلى حوالي 95 كيلوبايت باستخدام Brotli. لا يقلل هذا القيمة TBT بنفس النسبة؛ لأن TBT يقيس تكلفة التنفيذ. ولكن، يتقلص زمن التحميل، وتتحسن أولويات الموارد، ويتم تحسين تجربة التحميل بشكل عام. وبالتالي، يجب التفكير في defer وasync والتخزين المؤقت والاستضافة الصحيحة معًا.
قائمة تحقق القياس والتحقق
لا يكفي النظر فقط إلى درجة PageSpeed لمعرفة ما إذا كانت التحسينات ناجحة. تساعدك قائمة التحقق التالية في تقييم التأثير الحقيقي بشكل أكثر دقة:
- هل تمت مقارنة قيمة TBT المحمولة قبل وبعد التحسين؟
- هل انخفضت الملفات الأكثر تكلفة في تقرير وقت تنفيذ JavaScript؟
- هل انخفض عدد المهام الطويلة في سجل أداء Chrome DevTools؟
- هل هناك أخطاء JavaScript في وحدة التحكم؟
- هل تعمل سير العمل للقوائم، والبحث، والفلاتر، والنماذج، والسلة، والدفع بسلاسة؟
- هل يتم تفعيل أكواد التحليل والإعلانات بشكل صحيح؟
- هل تتحسن بيانات المستخدم الحقيقية في INP وتأخيرات التفاعل؟
- هل تم اختبار التغييرات بعد очистة التخزين المؤقت؟
النقطة المهمة هنا هي الفصل بين بيانات المختبر والبيانات الميدانية. TBT هو مقياس مختبر Lighthouse. في تجربة المستخدم الحقيقية، أصبح INP (Interaction to Next Paint) أكثر تحديدًا. ومع ذلك، فإن انخفاض TBT غالبًا ما يساهم في تحسين INP؛ لأن هناك أقل من الحظر في الخيط الرئيسي.
الأخطاء الشائعة وطرق تجنبها
استخدام async لجميع السكربتات في نفس الوقت
هذه واحدة من أكثر الأخطاء شيوعًا. نظرًا لأن async لا يضمن الترتيب، يمكن أن يؤدي إلى أخطاء عشوائية في الملفات المعتمدة. قد يظهر الهيكل الذي يبدو سلسًا في صفحة ما، على اتصال بطيء أو متصفح مختلف.
تأجيل jQuery والإضافات المعتمدة بشكل خاطئ
خصوصًا في مواقع WordPress، تعتمد العديد من الإضافات على ترتيب jQuery. تحويل نواة jQuery إلى async يمكن أن يؤدي إلى تشغيل أكواد الإضافات قبل تحميل jQuery. الحل هو رؤية الشبكة الاعتمادية وإدراج الملفات الحرجة في القائمة المستبعدة.
ترك سكربتات الطرف الثالث بدون رقابة
قد ينسى مالك الموقع تحسين ملفات الثيم الخاصة به أثناء تحسين أكواد الإعلانات والدردشة والتحليلات. ومع ذلك، غالبًا ما تأتي المهام الأكثر تكلفة من المصادر الخارجية في تقارير Lighthouse. يوفر إزالة العلامات غير المستخدمة، والتفعيل المشروط، وتأجيلها عند الحاجة إلى تفاعل المستخدم مكاسب هامة.
تثبيت الإضافات دون قياس
يمكن أن تكون إضافات الأداء مفيدة؛ ولكن أي أداة مستخدمة دون قياس يمكن أن تضيف حمولات جديدة من JavaScript وCSS. قم بتشخيص المشكلة أولاً، ثم اختر الأداة. تحقق من أن الإضافة تقلل فعلاً من TBT من خلال تقارير الاختبار.
تجاهل تضارب التخزين المؤقت والتصغير
إذا تم تطبيق التصغير، والتجميع، وdefer وasync في نفس الوقت، فقد يتغير ترتيب الملفات. قد يؤدي ذلك إلى أخطاء غير متوقعة في بيئة الإنتاج. خاصةً إذا تم استخدام CDN، وتخزين الذاكرة المؤقتة على الخادم، وتخزين التطبيقات معًا، يجب تنظيف جميع الطبقات بعد التغيير.
سيناريو تحسين واقعي
دعنا نفترض أن هناك 18 طلب JavaScript على الصفحة الرئيسية لموقع مؤسسي متوسط الحجم. خمسة منها تتعلق بسلوك الثيم والقائمة، وأربعة تتعلق بالمزلقات والرسوم المتحركة، وثلاثة تتعلق بالنماذج والخريطة، وستة تتعلق بالتحليلات، وأكواد البكسل، والدعم المباشر. دعنا نفترض أن قيمة TBT المحمولة في البداية كانت 920 ملي ثانية.
في الخطوة الأولى، يتم إزالة اثنين من إضافات الرسوم المتحركة غير المستخدمة، مما يقلل من حمولة JavaScript المضغوطة بمقدار 140 كيلوبايت. تنخفض قيمة TBT إلى 760 ملي ثانية. في الخطوة الثانية، يتم استخدام defer لملفات الثيم والمزلقات؛ ويتم اختبار الاعتماديات. تصبح قيمة TBT 480 ملي ثانية. في الخطوة الثالثة، يتم تحميل سكربت الخريطة فقط عند التمرير إلى قسم الاتصال، ويتم بدء الدعم المباشر بعد 7 ثوانٍ، ويتم تحويل أكواد التحليل والبكسل إلى async. في القياس النهائي، تنخفض قيمة TBT إلى 210 ملي ثانية.
يوضح هذا السيناريو أهمية النهج الطبقي بدلاً من إعداد سحري واحد. تعد defer وasync أدوات قوية؛ ولكن تحقيق أفضل النتائج يتطلب إزالة الأكواد غير الضرورية، والتحميل المشروط، والتخزين المؤقت الصحيح، والبنية التحتية عالية الجودة.
النتيجة: استراتيجية JavaScript متوازنة ومختبرة لتقليل TBT
يعتبر تطبيق تحميل JavaScript المتأخر على موقعك أحد الطرق الأكثر عملية وفعالية لتقليل زمن الحظر الكلي (TBT). يوفر defer حلاً آمنًا للملفات التي ينبغي أن تعمل بالتسلسل وبعد DOM؛ بينما يعد async مثاليًا لتحميل السكربتات الخارجية المستقلة بشكل أكثر مرونة. لتحقيق تحسين ناجح، يجب أولاً قياس الأداء، وتصنيف السكربتات، وإزالة الملفات غير الضرورية، واختبار التغييرات بشكل تدريجي، ومراقبة تجربة المستخدم الحقيقية.
استخدام بنية تحتية سريعة وآمنة وقابلة للتوسع مع Hostragons سيساعدك على تحقيق أداء ويب أكثر استقرارًا مع تحسين JavaScript، والتخزين المؤقت، وتكوين SSL. إذا كنت ترغب في تحسين قيمة TBT لموقعك، فابدأ بإعداد تقريرك الحالي، ثم تقدم بخطوات صغيرة ولكن قابلة للقياس. يمكنك استكشاف حلول Hostragons للاستضافة والبنية التحتية للأداء. باقات استضافة الويب Hostragons
الأسئلة الشائعة
هل يمكن استخدام defer وasync في نفس الوقت؟
إذا تم استخدام defer وasync معًا في وسم سكربت كلاسيكي، قد يتصرف async بشكل أولوية في المتصفحات الحديثة، مما يلغي ضمان الترتيب. لذلك، لا يُنصح عمومًا باستخدام كليهما معًا في نفس الملف. يعد defer أكثر أمانًا في الملفات المعتمدة، وasync في الملفات المستقلة.
هل يزيد تحميل JavaScript المتأخر من ترتيب SEO مباشرة؟
لا يضمن ارتفاع الترتيب مباشرة بمفرده؛ ولكنه يدعم نجاح SEO من خلال تحسين تجربة الصفحة، وسرعة التفاعل، وأداء Core Web Vitals. يمكن أن تعزز الصفحات التي تستجيب بسرعة رضا المستخدم، وزيادة التحويل، وإدراك الجودة القابلة للزحف.
هل من الآمن إضافة defer إلى كل ملف JavaScript؟
لا. قد تحتاج بعض السكربتات للعمل في المراحل الأولى من الصفحة أو تعتمد على تحميل ملفات أخرى بترتيب معين. لذلك، يجب فحص كل ملف من حيث الاعتماديات ووقت التنفيذ؛ ويجب اختبار التغييرات في بيئة الاختبار.
هل يكفي استخدام defer وasync فقط لتقليل TBT؟
يمكن أن تحقق تحسينًا كبيرًا في المواقع الصغيرة والمتوسطة؛ ولكن للمواقع التي تستخدم أطر عمل ثقيلة، أو تحتوي على العديد من الأكواد الخارجية، أو ملفات حزمة كبيرة، هناك حاجة إلى إجراءات إضافية. يجب أن يتم النظر في تقسيم الكود، وإزالة JavaScript غير المستخدمة، والتحميل المشروط، والتخزين المؤقت، وبنية الاستضافة القوية معًا.
ما هي السكربتات التي لا ينبغي أن تكون async في موقع WordPress؟
يجب عدم جعل ملفات الإضافات المعتمدة على jQuery، وأكواد الدفع والسلة، والتحقق من النماذج، والتحقق من الأمان، والوظائف الحرجة للثيم عشوائيًا async. إذا انكسر الترتيب في هذه الملفات، قد تتعطل عمليات المستخدم. يجب تجربة defer أولاً، وإذا لزم الأمر، يُنصح بإنشاء قائمة استبعاد.