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