بناء مواقع ويب ذات أداء عالي وطرق فحص وإصلاح البطء بالأداء
الأسوأ من ذلك أنّ الملفات غير مجموعة (concatenated)، عشرات طلبات HTTP فقط لإظهار محتوى الصفحة!
برأيي أهم لحظة حاسمة في نجاح الموقع هي عند فتحه لأول مرة، بعدها سيقرر المستخدم إن كان سيعود إليه أم لا.
ما احتمال أن تكون الملفات التي طلبها المتصفح من CDN مُخزّنة مؤقتًا؟ إلى أي حد يمكن الاعتماد على هذا الاحتمال؟
على فرض أنّها كانت موجودة، فلا يمكن الاعتماد على كل شيء في CDN، هناك بعض الملفات التي ستكون خاصة بالموقع ذاته، كملفات logic والتنسيق... ربّما الآن أصبحنا نطلب 8 طلبات HTTP من مصادر مختلفة (مع ما يكلفه كل طلب من DNS resolving ومعالجة أو اكتشاف من Cache على القرص). سيحمل المتصفح في حالة منشر HTML ويفسرها ليكتشف ما تحويه من ملفات JavaScript وCSS ويبدأ بجلبها، وينتظر حتى ينتهي كل طلبات JavaScript التي تُقدّم Angular وتوابعها (sanitize وresource...) ثم ملفات JavaScript الخاصة بlogic الموقع ذاته، ليكتشف أن عليه الآن جلب محتوى المقال (الذي هو أهم شيء!).
من الأفضل عدم دمج الملفات في ملف واحد فستزيد مدة الإستجابة فمثلا إذا كان الأمر المستعمل موجود في أسفل الملف و كنت قد دمجت جميع الملفات في ملف واحد فهذه مشكلة فسيضطر المتصفح كل مرة إلى قراءة كل الملف حتى يجد الأمر المطلوب و سيحدث العكس إذا استعملت عدة ملفات فستكون السرعة كبيرة لأن المتصفح سيبحث مباشرة عن الأمر في الملف الفرعي و الذي بدوره سيكون حجمه صغيرا مما يزيد سرعة الإستجابة.
التعليقات