إعدادات إضافة W3 Total Cache Minify: كيف أختار نوع التضمين؟ تجربتي في حل المشكلات ونصائحي القيّمة

هل تواجه صعوبة في اختيار نوع التضمين المناسب لإضافة W3 Total Cache Minify؟ تُشارك هذه المقالة تجربة عملية لأحد مُطوري المواقع، وتُقدم دليلاً مُفصلاً خطوة بخطوة لاختيار نوع التضمين المُناسب لـ Minify بدقة، مما يُجنبك مشاكل تصميم الموقع وتعطل التحميل. كما تتضمن حلاً سهلاً وبسيطاً يُمكن حتى للمبتدئين تطبيقه بسهولة، لضمان تجربة استخدام سلسة وسريعة على ووردبريس !

كنتُ أقوم بتحسين موقع ويب، وعندما فتحتُ إعدادات التصغير في برنامج W3 Total Cache، شعرتُ بالذهول التام. احتوت القائمة المنسدلة لنوع التضمين على أربعة خيارات: الافتراضي (حظر)، استخدام جافا سكريبت لعدم الحظر، استخدام "غير متزامن" لعدم الحظر، واستخدام "مؤجل" لعدم الحظر.

فكرت في الأمر للحظة، ما كل هذا؟

صدقني، لست وحدك. هذه الخيارات الأربعة قد تُربك حتى المبتدئين، فما بالك بمن يستخدم ووردبريس منذ سنوات. تُقدم هذه المقالة المشاكل التي واجهتها والدروس التي تعلمتها، مباشرةً إليك. لستَ بحاجة إلى الرجوع إلى الوثائق؛ فقط اتبع تعليماتي.

ما هي أنواع التضمين الأربعة هذه تحديداً؟

إعدادات إضافة W3 Total Cache Minify: كيف أختار نوع التضمين؟ تجربتي في حل المشكلات ونصائحي القيّمة

لنتحدث أولاً عن نوع الشخصية التي تمثلها هذه الخيارات الأربعة.

يُعدّ الحظر الافتراضي أبسط الطرق وأكثرها مباشرة. فعندما يصادف المتصفح نصًا برمجيًا، يتوقف، ثم يقوم بتنزيله وتنفيذه بالكامل، ثم يستأنف عرض الصفحة. يبدو هذا موثوقًا، أليس كذلك؟ لكنّ المقابل هو تأخير تحميل الصفحة في البداية؛ إذ سيتعين على المستخدمين الانتظار حتى ينتهي النص البرمجي من العمل قبل أن يتمكنوا من رؤية أي شيء.

يُعدّ استخدام جافا سكريبت للبرمجة غير المتزامنة أمرًا مثيرًا للاهتمام. فبدلًا من كتابة وسوم `<script>` مباشرةً على الصفحة، تُخرج جافا سكريبتًا صغيرًا أولًا، ثم تُضيف ديناميكيًا البرامج النصية اللازمة إلى الصفحة عبر جافا سكريبت بعد تشغيلها. بهذه الطريقة، تُعرض الصفحة أولًا، ثم تُحمّل البرامج النصية تدريجيًا. يبدو هذا رائعًا، أليس كذلك؟ مع ذلك، تكمن المشكلة في أن عملية الإضافة الديناميكية هذه قد تُخلّ بترتيب تنفيذ البرامج النصية الأصلي. إذا كانت بعض البرامج النصية على صفحتك تعتمد بشكل كبير على ترتيب التنفيذ، فقد تنشأ مشاكل.

استخدام "غير متزامن" لتنفيذ التعليمات البرمجية دون حظر يتطلب ببساطة إضافة السمة `async` إلى وسم `<script>`. سيتم تنزيل البرنامج النصي بشكل غير متزامن في الخلفية وتنفيذه فور اكتماله، دون انتظار الصفحة. مع ذلك، يكمن العيب في أن ترتيب التنفيذ غير قابل للتحكم تمامًا؛ فما يتم تنزيله أولًا يُنفذ، بغض النظر عن الترتيب المحدد في التعليمات البرمجية.

يُمكن استخدام خاصية "التأخير" لتنفيذ التعليمات البرمجية دون حظرها، وذلك بإضافة السمة `defer`. سينتظر البرنامج النصي حتى يتم تحليل الصفحة بالكامل قبل تنفيذه، والأهم من ذلك، أنه سيحافظ على الترتيب الأصلي الذي كتبته به. هذه الطريقة سهلة الاستخدام للغاية، حيث لا تُعيق الشاشة الأولى ولا تُخل بترتيب البرنامج النصي.

أيهما أختار؟

ببساطة، هذه الخيارات الأربعة تشبه سؤال الاختيار من متعدد: هل تريد السرعة، أم تريد النظام؟

اقتراحي هو كالتالي:

إذا كان موقعك الإلكتروني صغيرًا، ويحتوي على عدد قليل من البرامج النصية، ولا تتطلب سرعة تحميل عالية جدًا، فإن استخدام الإعداد الافتراضي (المحظور) هو الخيار الأسهل. على الرغم من أنه أبطأ قليلًا، إلا أنه لن يسبب أي مشاكل.

إذا كنت ترغب في تحسين سرعة تحميل الصفحة الأولى، وكانت نصوصك البرمجية لا تعتمد على تبعيات قوية مثل "يجب تنفيذ A قبل B"، فاجعل استخدام "defer" أولوية للتنفيذ غير المتزامن . يُعد هذا الحل الأمثل تقريبًا المتاح حاليًا، لأنه يتجنب تعطل عملية العرض مع الحفاظ على ترتيب التنفيذ.

إذا وجدت أن بعض الدوال لا تزال تواجه مشاكل بعد تجربة خاصية التأجيل، ففكر في استخدام جافا سكريبت للتنفيذ غير المتزامن . هذا الأسلوب أكثر فعالية، لكن توافقه أقل جودة.

استخدام "async" للبرمجة غير المتزامنة هو الخيار الذي لا أنصح به إطلاقاً. نظراً لاختلاف ترتيب التنفيذ بشكل كبير، فمن السهل حدوث أعطال ما لم تكن متأكداً تماماً من أن البرامج النصية تعمل بشكل مستقل.

مأزقان كبيران وقعت فيهما

الكلام سهل. لقد دوّنت خطأين ارتكبتهما؛ يمكنك مقارنتهما بتجربتك الخاصة لمعرفة ما إذا كان بإمكانك تجنبهما.

المأزق الأول: لا يمكن معاينة قوالب ووردبريس المخصصة في الوقت الفعلي.

لفترة من الوقت، عند تخصيص أحد القوالب، بعد النقر على "حفظ"، لم يتم تحديث المعاينة. كنتُ أجري بعض التغييرات، ثم أُحدّث الصفحة، لكنها تبقى كما هي.

بعد بعض البحث، اكتشفت أن وظيفة الضغط في برنامج Minify هي السبب. الحل بسيط:

انتقل إلى الإعدادات العامة لملحق W3 Total Cache ، وابحث عن خيار "الضغط" ، ثم قم بإلغاء تحديده. بعد ذلك، انقر على السهم الصغير أسفل "حفظ الإعدادات" في الزاوية العلوية اليمنى، واختر " حفظ الإعدادات ومسح ذاكرة التخزين المؤقت ". هذه الخطوة ضرورية؛ فبدون مسح ذاكرة التخزين المؤقت، ستظل ترى الإصدار القديم.

بعد الانتهاء، ارجع إلى تخصيص المظهر، وستعود المعاينة المباشرة إلى وضعها الطبيعي.

المشكلة الثانية: مربع البحث عن سمة Astra لا يستجيب عند النقر عليه.

واجهتُ هذه المشكلة منذ فترة. كنتُ أستخدم قالب أسترا، وفجأةً وجدتُ أن مربع البحث لا يستجيب مهما حاولتُ النقر عليه. في البداية، ظننتُ أن المشكلة في القالب نفسه، لكنني اكتشفتُ لاحقًا أنها ناتجة عن إعدادات تصغير الملفات في W3TC.

الحل هو كالتالي:

انتقل إلى W3 Total Cache → الإعدادات العامة → إعدادات الضغط المتقدمة → JS → إعدادات محرك التصغير → إعدادات اللغة، وقم بتغيير نوع التضمين إلى أحد هذين النوعين:

  1. في السابق، كان يتم تحقيق عدم الحظر باستخدام جافا سكريبت.
  2. بعد ذلك، استخدم جافا سكريبت للتنفيذ غير المتزامن

وبالمثل، فإن مسح ذاكرة التخزين المؤقت وتحديث الصفحة سيسمح لمربع البحث بالعمل بشكل صحيح.

أما عن سبب اختيار هذين الخيارين دون غيرهما، فقد أجريتُ بعض الأبحاث. باختصار، مكونات واجهة المستخدم في قالب Astra حساسة للغاية لتوقيت تنفيذ البرامج النصية، وقد تتسبب بعض الطرق غير المتزامنة في فشل ربط الأحداث. يضمن استخدام وضع "غير متزامن مع جافا سكريبت" تنفيذ البرنامج النصي فقط بعد اكتمال تحميل الصفحة، مع تجنب التنفيذ غير المنتظم الذي يحدث مع البرمجة غير المتزامنة.

قائمة الأماكن التي يُنصح بزيارتها

وأخيرًا، إليك قائمة مرجعية يمكنك اتباعها مباشرة:

الخطوة الأولى هي تحديد هدفك بوضوح. هل ترغب في تحميل الصفحة بسرعة فائقة، أم أنك تُعطي الأولوية للاستقرار والتشغيل الخالي من الأخطاء؟ سيحدد هذا نوع التضمين الذي يجب عليك استخدامه.

الخطوة الثانية هي عدم تغيير كل شيء دفعة واحدة. أولاً، ابحث عن صفحة أقل أهمية لاختبارها، وراقبها ليوم أو يومين، ولا تُعممها على الموقع بأكمله إلا إذا كنت متأكدًا من عدم وجود أي مشاكل.

ثالثًا، احرص دائمًا على مسح ذاكرة التخزين المؤقت بعد كل تعديل. فآلية التخزين المؤقت في W3TC تمنعك من رؤية آخر التغييرات، لذا فإن خطوة "مسح ذاكرة التخزين المؤقت وإعادة الاختبار" ضرورية للغاية.

رابعًا، استخدم أدوات مطوري المتصفح أو أدوات مثل PageSpeed ​​Insights لمقارنة سرعة التحميل قبل وبعد. دع البيانات تتحدث عن نفسها، وليس مجرد حدسك.

اكتب في النهاية

بصراحة، عندما رأيتُ إعداد النوع المضمن هذا لأول مرة، انتابتني الدهشة لفترة طويلة. بدا وضع الحظر الافتراضي بطيئًا للغاية، بينما لم يضمن الوضع غير المتزامن ترتيب العمليات، وقد يتسبب التأجيل في مشاكل توافق. شعرتُ بالحيرة حيال الخيار الأنسب.

لكنني أدركت لاحقًا أن الأمر ينطوي على مفاضلة. لا يمكنك الحصول على السرعة والاستقرار معًا؛ عليك دائمًا التضحية بأحدهما. تجربتي هي استخدام خاصية التأجيل أولًا، وهي حاليًا الحل الأكثر أمانًا وغير المتزامن، ثم استخدام دالة رد نداء في حال ظهور مشاكل.

إذا واجهت مشاكل مماثلة، أو إذا استمرت لديك مشاكل أخرى بعد اتباع طريقتي، فلا تتردد في مناقشتها. تطوير المواقع الإلكترونية يعتمد على التجربة والخطأ، ولا أحد يُستثنى من ذلك.

شكراً لكم على قراءة مقالتي. أراكم في المرة القادمة.

آمل أن تكون المقالة "إعدادات إضافة W3 Total Cache Minify: كيف تختار نوع التضمين؟ أخطائي ونصائحي المنقذة للحياة" المنشورة على مدونة تشين ويليانغ ( https://www.chenweiliang.com/ ) مفيدة لك.

لا تتردد في مشاركة رابط هذه المقالة: https://www.chenweiliang.com/cwl-34003.html

لاكتشاف المزيد من الحيل المخفية🔑، مرحبًا بك في الانضمام إلى قناتنا على Telegram!

مشاركة ومثل إذا كنت ترغب في ذلك! مشاركاتك وإعجاباتك هي حافزنا المستمر!

 

发表 评论

لا يوجد أي مشكلة في هذا الأمر.

انتقل إلى الأعلى