وانت بتحسن الperformance لل UI في ال frontend بتقابل مصطلح FCP
mhmda965290 منذ شهر
وانت بتحسن الperformance لل UI في ال frontend بتقابل مصطلح FCP
في Lighthouse الـ First Contentful Paint (FCP) بيقيس الوقت من أول ما الصفحة تبدأ تتحمل لحد ما اول جزء من المحتوى تظهر على الشاشة
المثالي إن الرقم ده يكون أقل من 1.8 ثانية. لو أكتر من كدة، يبقى عندك مشكلة.
إزاي تنزل بالرقم ده :
التخلص من الموارد التي تعيق الرندر
أكبر عدو للـ FCP هو ملفات الـ CSS والـ JS اللي المتصفح لازم يحملها بالكامل قبل ما يرسم أي حاجة.
الحل: استخدم async أو defer لأي ملف JavaScript مش أساسي لبداية الصفحة.
اعمل Inline Critical CSS: استخرج الـ CSS المسؤول عن الجزء اللي فوق وحطه جوه تاج <style> في الـ head.
تقليل وقت استجابة السيرفر
لو السيرفر بياخد وقت عقبال ما يبعت أول Byte، الـ FCP بالتبعية هيتأخر.
الحل:
استخدم CDN عشان تقرب البيانات من المستخدم جغرافيًا.
فعل الـ Caching على السيرفر.
لو بتستخدم SSR (زي Next.js)، اتأكد إن الـ Database queries سريعة.
تجنب الـ "Invisible Text" أثناء تحميل الخطوط
المتصفح أحياناً بيخفي النص لحد ما ملف الخط (Font) يتحمل، وده بيأخر الـ FCP جداً.
الحل: استخدم خاصية font-display: swap; في الـ @font-face. دي بتخلي المتصفح يعرض خط النظام فوراً لحد ما خطك يجهز، فالمحتوى يظهر بسرعة.
تقليل حجم الـ DOM
لو الـ HTML بتاعك فيه آلاف الـ Nodes، المتصفح بياخد وقت طويل جداً عشان يحسب مكان كل حاجة.
الحل: بسّط هيكلة الصفحة، وامسح أي Elements مالهاش لزمة أو مخفية بالـ CSS وهي مش مستخدمة.
Preconnect و Preload
لو عندك ملف CSS أساسي أو خط مهم، عرف المتصفح إنه يبدأ يجهز الاتصال بالسيرفر بتاعه بدري.
مثلا: <link rel="preconnect" href="https://lnkd.in/dHkpKidR">

