Web performance - الجزء الثاني

anees abu-hmaid
anees abu-hmaidSenior Full Stack Developer em EnterTab

الجزء الثاني من سلسلة مقالات الأداء، ونتحدث فيها عن جزئيات ومصطلحات مهمة تتمحور Reducing overall load time Making the site usable as soon as possible Smoothness and interactivity Perceived performance Performance measurements

‫الرحيم‬ ‫الرحمن‬ ‫الله‬ ‫بسم‬
‫منه‬ ‫كان‬ ‫من‬ ُ‫د‬‫ويزي‬ ،
ً ‫ّا‬‫جي‬‫ن‬ ‫ناداه‬ ‫من‬ ‫ُجيب‬‫ي‬‫و‬ ،
ً ‫خفيا‬ ‫دعاه‬ ‫من‬ ‫ُحب‬‫ي‬ ،‫العالمين‬ ّ
‫رب‬ ‫لله‬ ‫حمد‬‫ل‬‫ا‬
.‫العالمين‬ ّ
‫رب‬ ‫لله‬ ‫حمد‬‫ل‬‫ا‬ ،
ً ‫ّا‬‫رضي‬ ‫الوعد‬ ‫صادق‬ ‫كان‬ ‫من‬ ‫ويهدي‬ ،
ً ‫ّا‬‫وفي‬ ‫له‬ ‫كان‬ ‫من‬ ‫يكرم‬‫و‬ ،
ً ‫ّا‬‫ي‬ِ‫حي‬
Web performance - 2
‫في‬
‫جزء‬‫ل‬‫ا‬
‫الأول‬
‫من‬
‫هذه‬
‫السلسلة‬
‫حدثنا‬‫ت‬
‫عن‬
‫مجموعة‬
‫من‬
‫المفاهيم‬
‫العامة‬
‫حول‬
‫ال‬
Web
performance
‫ولماذا‬
‫جب‬‫ي‬
‫أن‬
‫نهتم‬
‫بهذا‬
،‫الموضوع‬
‫والآن‬
‫سندخل‬
‫في‬
‫بعض‬
‫التفاصيل‬
‫بشكل‬
…‫عمقا‬ ‫أكثر‬
‫عندما‬
‫حدث‬‫ت‬‫ن‬
‫عن‬
‫ال‬
Web performance
‫فإننا‬
‫حدث‬‫ت‬‫ن‬
‫عن‬
‫وسيلة‬
‫قياس‬
‫موضوعية‬
‫للأداء‬
‫بالإضافة‬
‫إلى‬
‫جربة‬‫ت‬
‫المستخدم‬
‫المتوقعة‬
‫في‬
‫الموقع‬
‫خاص‬‫ل‬‫ا‬
‫بنا‬
‫بناء‬
‫على‬
‫ال‬
Business model
،
،‫خيلي‬‫ت‬ ‫أو‬ ‫حقيقي‬ ‫بشكل‬ ‫أسرع‬ ‫الإلكتروني‬ ‫الموقع‬ ‫جعل‬‫ن‬ ‫أن‬ ‫وهو‬ ،‫سابقا‬ ‫كرناه‬
‫ذ‬ ‫ما‬ ‫يعني‬ ‫وهذا‬
‫جعل‬‫ت‬ ‫التي‬ ‫الأساليب‬ ‫بعض‬ ‫استخدام‬ ‫خلال‬ ‫من‬ ‫خيلي‬‫ت‬‫و‬ ،‫الفعلية‬ ‫السرعة‬ ‫يادة‬‫بز‬ ‫حقيقي‬‫ل‬‫ا‬ ‫بشكله‬
:‫التالية‬ ‫الأسئلة‬ ‫إجابة‬ ‫يشمل‬ ‫كله‬ ‫للمستخدم…وهذا‬ ‫أسرع‬ ‫وكأنها‬ ‫تظهر‬ ‫البطيئة‬ ‫العمليات‬ ‫بعض‬
1
.
‫بسرعة؟‬ ‫تحميله‬ ‫تم‬ ‫الموقع‬ ‫هل‬
2
.
‫بسرعة؟‬ ‫المستخدم‬ ‫قبل‬ ‫من‬ ‫معه‬ ‫بالتفاعل‬ ‫يسمح‬ ‫الموقع‬ ‫هل‬
3
.
‫حتاج‬‫ت‬ ‫ما‬ ‫عملية‬ ‫هناك‬ ‫بأن‬ ‫المستخدم‬ ‫لإعلام‬ ‫الوسائل‬ ‫بعض‬ ‫استخدام‬ ‫أو‬ ‫توفير‬ ‫يتم‬ ‫هل‬
‫إلى‬
‫وقت؟‬
‫مثلا‬
‫إظهار‬
loading spinner
‫؟‬
4
.
‫وهل‬ ‫وسلس؟‬ ‫سهل‬ ‫بشكل‬ ‫الصفحة‬ ‫في‬ ‫المعروضة‬ ‫البيانات‬ ‫بين‬ ‫التنقل‬ ‫عملية‬ ‫تتم‬ ‫هل‬
‫عملية‬
‫ال‬
scroll
‫تتم‬
‫بشكل‬
‫سلس‬
‫أيضا؟‬
‫ندركها‬ ‫أن‬ ‫جب‬‫ي‬ ‫التي‬ ‫العناوين‬ ‫من‬ ‫مهمة‬ ‫مجموعة‬ ‫هناك‬ ‫أن‬ ‫القول‬ ‫يمكن‬ ،‫أعلاه‬ ‫كر‬
‫ذ‬ ‫ما‬ ‫على‬ ‫بناء‬
‫أو‬
‫أن‬
‫ندرسها‬
‫أو‬
‫أن‬
‫حدث‬‫ت‬‫ن‬
‫عنها‬
‫ضمن‬
‫سياق‬
‫حديث‬‫ل‬‫ا‬
‫عن‬
‫ال‬
Web performance
،
‫وهي‬
:‫يلي‬ ‫بما‬ ‫سردها‬ ‫ويمكن‬ ،‫الأداء‬ ‫مشاكل‬ ‫جة‬‫ل‬‫معا‬ ‫أو‬ ‫لقياس‬ ‫الرئيسية‬ ‫الأبواب‬
●
Reducing overall load time
:
‫تقليل‬
‫الوقت‬
‫الإجمالي‬
‫لتحميل‬
‫الموقع‬
‫الإلكتروني‬
،‫مهمة‬ ‫نقاط‬ ‫بعدة‬ ‫التفكير‬ ‫عليك‬ ‫بهذا‬ ‫وللقيام‬ ،‫به‬ ‫التفكير‬ ‫يمكنك‬ ‫ما‬ ‫أول‬ ‫بك‬ ‫خاص‬‫ل‬‫ا‬
:‫وهي‬
○
‫ما‬
‫هو‬
‫الوقت‬
‫الإجمالي‬
‫اللازم‬
‫لتحميل‬
‫جميع‬
‫ال‬
files
‫ية‬‫الضرور‬
‫على‬
‫جهاز‬
‫المستخدم؟‬
○
‫ما‬
‫هي‬
‫جام‬‫ح‬‫الأ‬
‫خاصة‬‫ل‬‫ا‬
‫بهذه‬
‫ال‬
files
‫؟‬
○
‫ما‬
‫هو‬
‫عدد‬
‫هذه‬
‫ال‬
files
‫؟‬
‫تمثل‬ ‫والتي‬ ‫المشكلة‬ ‫هذه‬ ‫حل‬‫ل‬ ‫اتباعها‬ ‫يمكنك‬ ‫التي‬ ‫جيات‬‫ي‬‫الإسترات‬ ‫من‬ ‫العديد‬ ‫هناك‬ ،‫تقنيا‬
:‫هي‬ ‫جيات‬‫ي‬‫الاسترات‬ ‫هذه‬ ‫ومن‬ ،‫السابقة‬ ‫الأسئلة‬ ‫على‬ ‫إجابة‬ ‫ما‬ ‫بشكل‬
○
‫يمكن‬ ‫ما‬ ‫أصغر‬ ‫إلى‬ ‫الملفات‬ ‫جم‬‫ح‬ ‫تقليل‬
○
‫تقليل‬
‫عدد‬
‫ال‬
HTTP request
‫قدر‬
‫الإمكان‬
○
‫مثل‬ ،‫ممكن‬ ‫وقت‬ ‫أقرب‬ ‫في‬ ‫الملفات‬ ‫تحميل‬ ‫في‬ ‫تساهم‬ ‫تقنيات‬ ‫استخدام‬
‫استخدام‬
‫ال‬
Preload
.
●
Making the site usable as soon as possible
:
‫من‬
‫البديهي‬
‫أن‬
‫الموقع‬
‫كلما‬
‫هذا‬ ‫جعل‬‫ل‬‫و‬ ،‫المستخدم‬ ‫وبين‬ ‫بينه‬ ‫الثقة‬ ‫زادت‬ ‫كلما‬ ،‫للاستخدام‬ ‫قابليته‬ ‫في‬ ‫أسرع‬ ‫كان‬
‫ممكنا‬
‫جب‬‫ي‬
‫أن‬
‫نهتم‬
‫بكيفية‬
‫تحميل‬
‫ال‬
assets
‫خاصة‬‫ل‬‫ا‬
‫بالموقع‬
،‫الإلكتروني‬
‫وهذا‬
‫يعني‬
‫ترتيب‬
‫ال‬
assets
‫المراد‬
‫تحميلها‬
‫بشكل‬
،‫منطقي‬
‫حيث‬‫ب‬
‫يتمكن‬
‫المستخدم‬
‫من‬
‫إجراء‬
‫أول‬
action
‫حتاجه‬‫ي‬
،‫بسرعة‬
‫وهذه‬
‫فكرة‬
،‫بسيطة‬
‫فالملفات‬
‫التي‬
‫لن‬
‫حتاجها‬‫ي‬
‫المستخدم‬
،‫فورا‬
‫بال‬ ‫هذا‬ ‫وسيتم‬ ،‫المطلوبة‬ ‫الملفات‬ ‫تحميل‬ ‫من‬ ‫ننتهي‬ ‫حتى‬ ‫تحميلها‬ ‫تأجيل‬ ‫يمكننا‬
background
‫دون‬
‫أن‬
‫يشعر‬
‫المستخدم‬
،!‫بذلك‬
‫ما‬‫ك‬
‫يمكن‬
‫فصل‬
‫الملفات‬
‫التي‬
‫لا‬
‫حتاجها‬‫ن‬
‫جلبها‬‫ن‬‫و‬
‫عند‬
‫الضرورة‬
‫فقط‬
(
lazy loading
،)
‫وهذا‬
‫الوقت‬
‫حتى‬
‫يصبح‬
‫كل‬
‫شيء‬
‫جاهزا‬
‫للتفاعل‬
‫يطلق‬
‫عليه‬
time to interactive
.
●
Smoothness and interactivity
:
‫تعد‬
‫هذه‬
‫النقطة‬
‫من‬
‫النقاط‬
‫البديهية‬
،‫والبسيطة‬
‫يقصد‬‫و‬ ،‫مشاكل‬ ‫فيها‬ ‫وجد‬ ‫إن‬ ‫المستخدم‬ ‫يزعج‬ ‫قد‬ ‫ما‬ ‫أكثر‬ ‫من‬ ‫الوقت‬ ‫نفس‬ ‫في‬ ‫لكنها‬
‫خاصة‬‫ل‬‫ا‬ ‫المكونات‬ ‫مع‬ ‫التفاعل‬ ‫على‬ ‫والقدرة‬ ‫والسلاسة‬ ‫السهولة‬ ‫مقدار‬ ‫هو‬ ‫النقطة‬ ‫بهذه‬
‫بالموقع‬
،‫الإلكتروني‬
‫وهذا‬
‫يشمل‬
‫الكثير‬
‫من‬
‫الأشياء‬
‫منها‬
،‫مثلا‬
‫هل‬
‫ال‬
scroll
‫يعمل‬
‫بشكل‬
‫سلس؟‬
‫هل‬
‫ال‬
buttons
‫يمكن‬
‫الضغط‬
‫عليها؟‬
‫هل‬
‫ال‬
popup
‫تظهر‬
‫للمستخدم‬
‫بسرعة؟‬
‫هل‬
‫هناك‬
‫مشاكل‬
‫بال‬
animation
،‫؟‬
‫هذه‬
‫المشاكل‬
‫كلها‬
‫إن‬
‫وجدت‬
‫يمكن‬
‫ال‬ ‫استخدام‬ ‫منها‬ ،‫سلس‬ ‫التطبيق‬ ‫من‬ ‫جعل‬‫ت‬ ‫والتي‬ ‫الطرق‬ ‫من‬ ‫والعديد‬ ‫بالكثير‬ ‫حلها‬
css animation
‫بدلا‬
‫من‬
js Animation
،
‫وتقليل‬
‫عمليات‬
‫ال‬
repaints
‫لل‬
UI
‫من‬
‫خلال‬
‫ال‬
DOM
‫قدر‬
.‫الإمكان‬
●
Perceived performance
:
‫إن‬
‫مقدار‬
‫الإحساس‬
‫بسرعة‬
‫الموقع‬
‫للمستخدمين‬
‫وطبيعة‬
‫تبني‬ ‫قد‬ ‫لأنك‬ ،!‫للموقع‬ ‫حقيقية‬‫ل‬‫ا‬ ‫السرعة‬ ‫من‬ ‫أهم‬ ‫الإحساس‬ ‫هذا‬ ‫على‬ ‫بناء‬ ‫إنفعالاتهم‬
‫تعد‬ ‫لذلك‬ ،!‫جربته‬‫ت‬ ‫على‬ ‫بناء‬ ‫سيء‬ ‫يراه‬ ‫المستخدم‬ ‫لكن‬ ،‫القياس‬ ‫خلال‬ ‫من‬ ‫يع‬‫سر‬ ‫موقع‬
‫الأمر‬ ‫هذا‬ ،‫لكن‬ ،‫الأهم‬ ‫تكن‬ ‫لم‬ ‫إن‬ ‫مهمة‬ ‫عملية‬ ‫المستخدمين‬ ‫قبل‬ ‫من‬ ‫الأداء‬ ‫ية‬‫رؤ‬
‫خلال‬ ‫من‬ ‫الأداء‬ ‫قياس‬ ‫على‬ ‫تعتمد‬ ‫العملية‬ ‫هذه‬ ‫لأن‬ ‫وذلك‬ ،‫قياسه‬ ‫السهل‬ ‫من‬ ‫ليس‬
‫حفاظ‬‫ل‬‫ا‬ ‫كيفية‬ ‫على‬ ‫هنا‬ ‫حرص‬‫ل‬‫ا‬ ‫يتم‬ ،‫لذلك‬ ،‫للموقع‬ ‫المستخدمون‬ ‫منها‬ ‫ينظر‬ ‫التي‬ ‫ية‬‫الزاو‬
‫إظهار‬ ‫لذلك‬ ‫الوسائل‬ ‫ومن‬ ،‫الانتظار‬ ‫وقت‬ ‫في‬ ‫الموقع‬ ‫مع‬ ‫متفاعلا‬ ‫وإبقائه‬ ‫المستخدم‬ ‫على‬
‫ال‬
spinner
‫أو‬
‫مجموعة‬
‫من‬
‫ال‬
hints
‫المتعلقة‬
‫خدمات…إلى‬‫ل‬‫با‬
،‫آخره‬
‫ومع‬
‫أنك‬
‫في‬
‫مع‬ ‫بالتفاعل‬ ‫قمت‬ ‫أنك‬ ‫إلا‬ ،‫القياسية‬ ‫الناحية‬ ‫من‬ ‫الموقع‬ ‫سرعة‬ ‫يادة‬‫بز‬ ‫هنا‬ ‫تقم‬ ‫لم‬ ‫الواقع‬
‫شعورا‬ ‫يعطيه‬‫و‬ ،‫عطل‬ ‫أي‬ ‫هناك‬ ‫يوجد‬ ‫ولا‬ ،‫يعمل‬ ‫زال‬ ‫ما‬ ‫الموقع‬ ‫بأن‬ ‫ليشعر‬ ‫المستخدم‬
…‫العمليات‬ ‫استمرار‬ ‫أو‬ ‫حدوث‬‫ب‬ ‫متغيرا‬
●
Performance measurements
:
‫في‬
‫هذه‬
‫جزئية‬‫ل‬‫ا‬
‫سنقوم‬
‫بقياس‬
‫الأداء‬
‫بشكل‬
‫في‬ ‫ستساعدنا‬ ‫التي‬ ‫الوسائل‬ ‫أو‬ ‫العمليات‬ ‫أو‬ ‫حسابات‬‫ل‬‫ا‬ ‫من‬ ‫مجموعة‬ ‫خلال‬ ‫من‬ ‫حقيقي‬
‫هل‬ ،‫فاشلة‬ ‫أم‬ ‫حة‬‫ج‬‫نا‬ ‫هي‬ ‫هل‬ ،‫الأداء‬ ‫ناحية‬ ‫من‬ ‫يقدمها‬ ‫التي‬ ‫خدمات‬‫ل‬‫وا‬ ‫التطبيق‬ ‫تقييم‬
‫مع‬ ‫ثباتها‬ ‫أو‬ ‫حسنها‬‫ت‬ ‫نضمن‬ ‫وهل‬ ،‫الوقت‬ ‫مع‬ ‫جودة‬‫ل‬‫ا‬ ‫مستوى‬ ‫على‬ ‫حافظة‬‫م‬‫ال‬ ‫استطعنا‬
…!‫سوء‬ ‫تزداد‬ ‫الوقت‬ ‫مع‬ ‫أنها‬ ‫أم‬ ،‫الوقت؟‬
‫خصائص‬‫ل‬‫ا‬ ‫من‬ ‫والعديد‬ ‫الكثير‬ ‫هناك‬ ‫بأن‬ ‫القول‬ ‫يمكننا‬ ،‫نقاط‬ ‫من‬ ‫سبق‬ ‫ما‬ ‫على‬ ‫بناء‬
‫والإضافات‬
‫والوسائل‬
‫التي‬
‫يمكنها‬
‫أن‬
‫تؤثر‬
‫على‬
‫ال‬
Performance
‫بشكل‬
‫حقيقي‬
‫ومباشر‬
‫أو‬
‫كز‬
‫تر‬ ‫أعلاه‬ ‫وردت‬ ‫التي‬ ‫النقاط‬ ‫جميع‬ ‫فإن‬ ،‫لذلك‬ ،‫المستخدم‬ ‫قبل‬ ‫من‬ ‫وشعوري‬ ‫خيلي‬‫ت‬ ‫بشكل‬
‫لبناء‬ ‫بالإضافة‬ ،‫التفاعل‬ ‫لبدء‬ ‫اللازم‬ ‫والوقت‬ ‫حتوى‬‫م‬‫ال‬ ‫لتحميل‬ ‫اللازم‬ ‫الوقت‬ ‫تقليل‬ ‫على‬ ‫وتهتم‬
…‫المستخدمين‬ ‫مع‬ ‫جيدة‬ ‫جربة‬‫ت‬
:‫مهمة‬ ‫ومفردات‬ ‫مصطلحات‬
●
latency
:
‫يقصد‬
‫بذلك‬
‫الوقت‬
‫المستغرق‬
‫لإرسال‬
‫حزمة‬
‫من‬
‫البيانات‬
‫من‬
‫نقطة‬
‫إلى‬
‫نقطة‬
‫أخرى‬
‫(من‬
‫ال‬
source
‫إلى‬
destination
)
‫مع‬
‫الوقت‬
‫المستغرق‬
‫لاستقبال‬
‫النتيجة‬
‫من‬
‫قبل‬
‫ال‬
source
،‫جددا‬‫م‬
،‫باختصار‬
‫هو‬
‫الوقت‬
‫المستغرق‬
‫من‬
‫حظة‬‫ل‬
‫إرسال‬
request
‫من‬
‫قبل‬
‫المستخدم‬
‫ولغاية‬
‫عودة‬
‫ال‬
response
،‫إليه‬
‫وكلما‬
‫قلت‬
‫قيمة‬
‫ال‬
latency
‫كلما‬
‫كان‬
‫الأداء‬
،!‫أفضل‬
‫وكلما‬
‫زادت‬
‫قيمة‬
‫ال‬
latency
‫كلما‬
‫كان‬
‫الأداء‬
…‫أسوأ‬
●
preload
:
‫هي‬
‫قيمة‬
‫يتم‬
‫استخدامها‬
‫أو‬
‫وضعها‬
‫داخل‬
‫ال‬
rel attribute
‫في‬
‫ال‬
link
tag
،
‫هذه‬
‫القيمة‬
‫ببساطة‬
‫تقوم‬
‫على‬
‫إعطاء‬
‫ية‬‫أولو‬
‫جلب‬‫ل‬
‫ال‬
resources
‫المهمة‬
‫خصوصا‬ ‫وعديدة‬ ‫كثيرة‬ ‫مزايا‬ ‫القيمة‬ ‫هذه‬ ‫وتقدم‬ ،‫وقت‬ ‫أسرع‬ ‫في‬ ‫للصفحة‬ ‫ية‬‫والضرور‬
‫جم‬‫ح‬‫ال‬ ‫ذو‬ ‫الفيديو‬ ‫أو‬ ‫سكربت‬ ‫جافا‬‫ل‬‫ا‬ ‫ملفات‬ ‫أو‬ ‫خطوط‬‫ل‬‫ا‬ ‫ملفات‬ ‫أو‬ ‫الصور‬ ‫جلب‬ ‫عند‬
‫الكبير…إلى‬
،‫آخره‬
‫من‬
‫المزايا‬
‫التي‬
‫تقدمها‬
‫أنك‬
‫ستضمن‬
‫تحميل‬
‫ال‬
resource
‫المطلوبة‬
‫من‬ ‫تحميله‬ ‫تم‬ ‫ما‬ ‫خزين‬‫ت‬ ‫وسيتم‬ ،‫بدونها‬ ‫كانت‬ ‫لو‬ ‫مما‬ ‫أفضل‬ ‫وبشكل‬ ‫المتوقعة‬ ‫ية‬‫بالأولو‬
resource
‫في‬
‫ال‬
cache
‫خاص‬‫ل‬‫ا‬
‫بالمتصفح‬
‫ليقوم‬
‫باستخدامها‬
‫في‬
‫صفحة‬
‫أخرى‬
‫عند‬
،…‫حاجة‬‫ل‬‫ا‬
‫وهذا‬
‫كله‬
‫يؤثر‬
‫جابا‬‫ي‬‫إ‬
‫على‬
‫ال‬
performance
‫حسنه‬‫ي‬‫و‬
‫بشكل‬
…‫ملحوظ‬
●
lazy loading
:
‫بكل‬
‫بساطة‬
‫هي‬
‫جية‬‫ي‬‫استرات‬
‫تفصل‬
‫ال‬
resource
‫الغير‬
‫مهمة‬
‫في‬
‫ال‬
render
‫أو‬
‫التي‬
‫لا‬
‫توقف‬
‫أو‬
‫تؤثر‬
‫على‬
‫ال‬
render
‫خاص‬‫ل‬‫ا‬
‫بالصفحة‬
‫عن‬
‫ال‬
resource
،‫المهمة‬
‫ومن‬
‫ثم‬
‫جلب‬
‫هذه‬
‫ال‬
resource
‫عند‬
‫حاجة‬‫ل‬‫ا‬
،!‫فقط‬
،‫مثلا‬
‫قد‬
‫إذا‬ ‫إلا‬ ‫للمستخدم‬ ‫بعرضها‬ ‫تقوم‬ ‫التي‬ ‫الصفحة‬ ‫في‬ ‫وصورة‬ ‫سكربت‬ ‫جافا‬ ‫ملف‬ ‫جلب‬ ‫تمنع‬
‫قام‬
‫بالضغط‬
‫على‬
‫زر‬
‫عرض‬
‫ال‬
modal
،…
‫هناك‬
‫الكثير‬
‫من‬
‫الطرق‬
‫للقيام‬
‫بهذه‬
،‫جية‬‫ي‬‫الاسترات‬
‫لكنها‬
‫بشكل‬
‫عام‬
‫تقوم‬
‫على‬
‫عمل‬
splitting
‫لل‬
js, css
‫وال‬
Html
‫حاجة‬‫ل‬‫ا‬ ‫عند‬ ‫فقط‬ ‫المطلوبة‬ ‫الملفات‬ ‫تضمين‬ ‫يمكن‬ ‫حيث‬‫ب‬ ،‫ممكن‬ ‫جم‬‫ح‬ ‫أصغر‬ ‫على‬ ‫لتكون‬
‫مثل‬ ‫مسبقا‬ ‫والمعرفة‬ ‫الموجودة‬ ‫خصائص‬‫ل‬‫وا‬ ‫الوسائل‬ ‫لبعض‬ ‫بالإضافة‬ ،‫غيرها‬ ‫دون‬
‫استخدام‬
‫ال‬
module type
‫لملفات‬
‫جافا‬‫ل‬‫ا‬
…‫سكربت‬
●
time to interactive
:
‫هذا‬
‫المصطلح‬
‫يشير‬
‫إلى‬
‫مقياس‬
‫حساب‬‫ل‬
‫الوقت‬
‫الزمني‬
‫آخر‬ ‫هي‬ ،‫أدق‬ ‫تقني‬ ‫وبشكل‬ ،‫كامل‬ ‫بشكل‬ ‫للتفاعل‬ ‫قابلة‬ ‫الصفحة‬ ‫لتصبح‬ ‫المستغرق‬
long task
‫تم‬
‫الإنتهاء‬
‫منها‬
‫يليها‬
5
‫ثواني‬
‫بدون‬
‫أي‬
‫نشاط‬
‫على‬
‫مستوى‬
‫ال‬
network
‫أو‬
‫ال‬
thread
،
‫وال‬
long task
‫هي‬
‫أي‬
‫مدة‬
‫زمنية‬
‫تزيد‬
‫أو‬
‫تساوي‬
50ms
‫تكون‬
‫فيها‬
‫ال‬
thread
‫مشغولة‬
‫بدون‬
‫أي‬
…‫قطع‬
…‫الله‬ ‫شاء‬ ‫إن‬ ‫الثالث‬ ‫جزء‬‫ل‬‫ا‬ ‫في‬ ‫يتبع‬

Recomendados

Web performance - الجزء الأول por
Web performance - الجزء الأولWeb performance - الجزء الأول
Web performance - الجزء الأولanees abu-hmaid
242 visualizações4 slides
أهمية اختبار أداء النظام.pdf por
أهمية اختبار أداء النظام.pdfأهمية اختبار أداء النظام.pdf
أهمية اختبار أداء النظام.pdfBahaa Al Zubaidi
24 visualizações2 slides
Service engineering هندسة الخدمات por
Service engineering هندسة الخدماتService engineering هندسة الخدمات
Service engineering هندسة الخدماتAyham AlKawi
475 visualizações5 slides
ما هو اختبار تحميل المستخدم الواحد ؟.pdf por
ما هو اختبار تحميل المستخدم الواحد ؟.pdfما هو اختبار تحميل المستخدم الواحد ؟.pdf
ما هو اختبار تحميل المستخدم الواحد ؟.pdfTechnology Pace
4 visualizações2 slides
Web performance - الجزء الثالث por
Web performance - الجزء الثالثWeb performance - الجزء الثالث
Web performance - الجزء الثالثanees abu-hmaid
161 visualizações11 slides
اختبار الأداء في بيئة رشيقة.pdf por
اختبار الأداء في بيئة رشيقة.pdfاختبار الأداء في بيئة رشيقة.pdf
اختبار الأداء في بيئة رشيقة.pdfTechnology Pace
4 visualizações2 slides

Mais conteúdo relacionado

Similar a Web performance - الجزء الثاني

Bi marabia24 por
Bi marabia24Bi marabia24
Bi marabia24Omar Selim
11 visualizações46 slides
Bi marabia24 por
Bi marabia24Bi marabia24
Bi marabia24Omar Selim
117 visualizações46 slides
قصة حياة Systems integrator por
قصة حياة  Systems integratorقصة حياة  Systems integrator
قصة حياة Systems integratorAshraf Osman
182 visualizações2 slides
هندسة الجودة للمؤسسات الرقمية.pdf por
هندسة الجودة للمؤسسات الرقمية.pdfهندسة الجودة للمؤسسات الرقمية.pdf
هندسة الجودة للمؤسسات الرقمية.pdfTechnology Pace
12 visualizações2 slides
هندسة الجودة للمؤسسات الرقمية.pdf por
هندسة الجودة للمؤسسات الرقمية.pdfهندسة الجودة للمؤسسات الرقمية.pdf
هندسة الجودة للمؤسسات الرقمية.pdfBahaa Al Zubaidi
7 visualizações2 slides
الورشة السحابية por
الورشة السحابيةالورشة السحابية
الورشة السحابيةSalim Al-jafari
596 visualizações21 slides

Similar a Web performance - الجزء الثاني(20)

Bi marabia24 por Omar Selim
Bi marabia24Bi marabia24
Bi marabia24
Omar Selim11 visualizações
Bi marabia24 por Omar Selim
Bi marabia24Bi marabia24
Bi marabia24
Omar Selim117 visualizações
قصة حياة Systems integrator por Ashraf Osman
قصة حياة  Systems integratorقصة حياة  Systems integrator
قصة حياة Systems integrator
Ashraf Osman182 visualizações
هندسة الجودة للمؤسسات الرقمية.pdf por Technology Pace
هندسة الجودة للمؤسسات الرقمية.pdfهندسة الجودة للمؤسسات الرقمية.pdf
هندسة الجودة للمؤسسات الرقمية.pdf
Technology Pace12 visualizações
هندسة الجودة للمؤسسات الرقمية.pdf por Bahaa Al Zubaidi
هندسة الجودة للمؤسسات الرقمية.pdfهندسة الجودة للمؤسسات الرقمية.pdf
هندسة الجودة للمؤسسات الرقمية.pdf
Bahaa Al Zubaidi7 visualizações
الورشة السحابية por Salim Al-jafari
الورشة السحابيةالورشة السحابية
الورشة السحابية
Salim Al-jafari596 visualizações
الحوسبةالسحابية por Mamoun Matar
الحوسبةالسحابيةالحوسبةالسحابية
الحوسبةالسحابية
Mamoun Matar1K visualizações
صلاحية المدير por Nour Elbader
صلاحية المديرصلاحية المدير
صلاحية المدير
Nour Elbader8.7K visualizações
صلاحية الموظف por Nour Elbader
صلاحية الموظفصلاحية الموظف
صلاحية الموظف
Nour Elbader8.8K visualizações
امتلاك موقع تفاعلي تفاعلي دون علم بقواعد البرمجة por elmouhssini1
امتلاك موقع تفاعلي تفاعلي دون علم بقواعد البرمجة امتلاك موقع تفاعلي تفاعلي دون علم بقواعد البرمجة
امتلاك موقع تفاعلي تفاعلي دون علم بقواعد البرمجة
elmouhssini11.3K visualizações
انتاج موقع تفاعلي دون علم بقواعد البرمجة por elmouhssini1
انتاج موقع تفاعلي دون علم بقواعد البرمجة انتاج موقع تفاعلي دون علم بقواعد البرمجة
انتاج موقع تفاعلي دون علم بقواعد البرمجة
elmouhssini1434 visualizações
BIMarabia24.pdf por Omar Selim
BIMarabia24.pdfBIMarabia24.pdf
BIMarabia24.pdf
Omar Selim61 visualizações
تقرير ادوات قوقل por Batool MH
تقرير ادوات قوقلتقرير ادوات قوقل
تقرير ادوات قوقل
Batool MH590 visualizações
إدارة نطاق المشروع.pdf por mohamedalsadig4
إدارة نطاق المشروع.pdfإدارة نطاق المشروع.pdf
إدارة نطاق المشروع.pdf
mohamedalsadig460 visualizações
أنظمة إدارة المحتوى por Ehab Saad Ahmad
أنظمة إدارة المحتوىأنظمة إدارة المحتوى
أنظمة إدارة المحتوى
Ehab Saad Ahmad419 visualizações
تحسين وقت توصيل الطعام باستخدام التعلم الآلي ML.pdf por Bahaa Al Zubaidi
تحسين وقت توصيل الطعام باستخدام التعلم الآلي ML.pdfتحسين وقت توصيل الطعام باستخدام التعلم الآلي ML.pdf
تحسين وقت توصيل الطعام باستخدام التعلم الآلي ML.pdf
Bahaa Al Zubaidi3 visualizações
قبل أن تكتب الشيفرة البرمجية، فكر كيف تكتبها - الجزء الأول por anees abu-hmaid
قبل أن تكتب الشيفرة البرمجية، فكر كيف تكتبها - الجزء الأولقبل أن تكتب الشيفرة البرمجية، فكر كيف تكتبها - الجزء الأول
قبل أن تكتب الشيفرة البرمجية، فكر كيف تكتبها - الجزء الأول
anees abu-hmaid144 visualizações
الحوسبة السحابية por Mamoun Matar
الحوسبة السحابيةالحوسبة السحابية
الحوسبة السحابية
Mamoun Matar5K visualizações
شرح برنامج نت كت بالصور por bramjsh Hassan
شرح برنامج نت كت بالصورشرح برنامج نت كت بالصور
شرح برنامج نت كت بالصور
bramjsh Hassan17.7K visualizações
الجزء الثاني من قصة حياة Systems integrator por Ashraf Osman
الجزء الثاني من قصة حياة  Systems integratorالجزء الثاني من قصة حياة  Systems integrator
الجزء الثاني من قصة حياة Systems integrator
Ashraf Osman109 visualizações

Mais de anees abu-hmaid

شرح طريقة تصميم الأنظمة - من مستخدم إلى مليون مستخدم )System Design) por
شرح طريقة تصميم الأنظمة - من مستخدم إلى مليون مستخدم )System Design)شرح طريقة تصميم الأنظمة - من مستخدم إلى مليون مستخدم )System Design)
شرح طريقة تصميم الأنظمة - من مستخدم إلى مليون مستخدم )System Design)anees abu-hmaid
347 visualizações178 slides
لا تتداول العملات الرقمية ولا تشتريها قبل أن تقرأ هذه الكلمات por
لا تتداول العملات الرقمية ولا تشتريها قبل أن تقرأ هذه الكلماتلا تتداول العملات الرقمية ولا تشتريها قبل أن تقرأ هذه الكلمات
لا تتداول العملات الرقمية ولا تشتريها قبل أن تقرأ هذه الكلماتanees abu-hmaid
127 visualizações8 slides
نقاط تقنية مفيدة لمستخدمين شبكة الإنترنت por
نقاط تقنية مفيدة لمستخدمين شبكة الإنترنتنقاط تقنية مفيدة لمستخدمين شبكة الإنترنت
نقاط تقنية مفيدة لمستخدمين شبكة الإنترنتanees abu-hmaid
168 visualizações8 slides
الجزء الثاني قبل أن تكتب الشيفرة البرمجية، فكر كيف تكتبها por
الجزء الثاني قبل أن تكتب الشيفرة البرمجية، فكر كيف تكتبهاالجزء الثاني قبل أن تكتب الشيفرة البرمجية، فكر كيف تكتبها
الجزء الثاني قبل أن تكتب الشيفرة البرمجية، فكر كيف تكتبهاanees abu-hmaid
198 visualizações5 slides
كيف تقرأ كتابا - خطوات لتحسين القراءة por
كيف تقرأ كتابا - خطوات لتحسين القراءةكيف تقرأ كتابا - خطوات لتحسين القراءة
كيف تقرأ كتابا - خطوات لتحسين القراءةanees abu-hmaid
204 visualizações7 slides
وهم الأمان - مخاطر الإنترنت والتعامل مع الابتزاز por
وهم الأمان - مخاطر الإنترنت والتعامل مع الابتزازوهم الأمان - مخاطر الإنترنت والتعامل مع الابتزاز
وهم الأمان - مخاطر الإنترنت والتعامل مع الابتزازanees abu-hmaid
77 visualizações7 slides

Mais de anees abu-hmaid(20)

شرح طريقة تصميم الأنظمة - من مستخدم إلى مليون مستخدم )System Design) por anees abu-hmaid
شرح طريقة تصميم الأنظمة - من مستخدم إلى مليون مستخدم )System Design)شرح طريقة تصميم الأنظمة - من مستخدم إلى مليون مستخدم )System Design)
شرح طريقة تصميم الأنظمة - من مستخدم إلى مليون مستخدم )System Design)
anees abu-hmaid347 visualizações
لا تتداول العملات الرقمية ولا تشتريها قبل أن تقرأ هذه الكلمات por anees abu-hmaid
لا تتداول العملات الرقمية ولا تشتريها قبل أن تقرأ هذه الكلماتلا تتداول العملات الرقمية ولا تشتريها قبل أن تقرأ هذه الكلمات
لا تتداول العملات الرقمية ولا تشتريها قبل أن تقرأ هذه الكلمات
anees abu-hmaid127 visualizações
نقاط تقنية مفيدة لمستخدمين شبكة الإنترنت por anees abu-hmaid
نقاط تقنية مفيدة لمستخدمين شبكة الإنترنتنقاط تقنية مفيدة لمستخدمين شبكة الإنترنت
نقاط تقنية مفيدة لمستخدمين شبكة الإنترنت
anees abu-hmaid168 visualizações
الجزء الثاني قبل أن تكتب الشيفرة البرمجية، فكر كيف تكتبها por anees abu-hmaid
الجزء الثاني قبل أن تكتب الشيفرة البرمجية، فكر كيف تكتبهاالجزء الثاني قبل أن تكتب الشيفرة البرمجية، فكر كيف تكتبها
الجزء الثاني قبل أن تكتب الشيفرة البرمجية، فكر كيف تكتبها
anees abu-hmaid198 visualizações
كيف تقرأ كتابا - خطوات لتحسين القراءة por anees abu-hmaid
كيف تقرأ كتابا - خطوات لتحسين القراءةكيف تقرأ كتابا - خطوات لتحسين القراءة
كيف تقرأ كتابا - خطوات لتحسين القراءة
anees abu-hmaid204 visualizações
وهم الأمان - مخاطر الإنترنت والتعامل مع الابتزاز por anees abu-hmaid
وهم الأمان - مخاطر الإنترنت والتعامل مع الابتزازوهم الأمان - مخاطر الإنترنت والتعامل مع الابتزاز
وهم الأمان - مخاطر الإنترنت والتعامل مع الابتزاز
anees abu-hmaid77 visualizações
Coding review guide مراجعة الشيفرة البرمجية por anees abu-hmaid
Coding review guide مراجعة الشيفرة البرمجيةCoding review guide مراجعة الشيفرة البرمجية
Coding review guide مراجعة الشيفرة البرمجية
anees abu-hmaid920 visualizações
Node.js course باللغة العربية por anees abu-hmaid
Node.js course باللغة العربيةNode.js course باللغة العربية
Node.js course باللغة العربية
anees abu-hmaid4.7K visualizações
Canvas دورة باللغة العربية por anees abu-hmaid
Canvas دورة باللغة العربيةCanvas دورة باللغة العربية
Canvas دورة باللغة العربية
anees abu-hmaid6.1K visualizações
Ecmascript 6 (ES6) جافا سكربت (6) por anees abu-hmaid
Ecmascript 6 (ES6) جافا سكربت (6)Ecmascript 6 (ES6) جافا سكربت (6)
Ecmascript 6 (ES6) جافا سكربت (6)
anees abu-hmaid7.3K visualizações
تنسيق الشيفرة البرمجية (Coding Style) por anees abu-hmaid
تنسيق الشيفرة البرمجية (Coding Style)تنسيق الشيفرة البرمجية (Coding Style)
تنسيق الشيفرة البرمجية (Coding Style)
anees abu-hmaid1.4K visualizações
Js dom & JS bom por anees abu-hmaid
Js dom & JS bomJs dom & JS bom
Js dom & JS bom
anees abu-hmaid5.6K visualizações
الخصوصية وموقعها من الإعراب por anees abu-hmaid
الخصوصية وموقعها من الإعرابالخصوصية وموقعها من الإعراب
الخصوصية وموقعها من الإعراب
anees abu-hmaid2.1K visualizações
Angular js دورة por anees abu-hmaid
Angular js دورةAngular js دورة
Angular js دورة
anees abu-hmaid7.6K visualizações
الإسلام والتقنية Islam & IT por anees abu-hmaid
الإسلام والتقنية Islam & ITالإسلام والتقنية Islam & IT
الإسلام والتقنية Islam & IT
anees abu-hmaid2.8K visualizações
تعلم البرمجة في 3 ساعات و 20 دقيقة و 55 ثانية por anees abu-hmaid
تعلم البرمجة في 3 ساعات و 20 دقيقة و 55 ثانيةتعلم البرمجة في 3 ساعات و 20 دقيقة و 55 ثانية
تعلم البرمجة في 3 ساعات و 20 دقيقة و 55 ثانية
anees abu-hmaid2.2K visualizações
اللغة الإنجليزية والمشاكل البرمجية ومهارة البحث por anees abu-hmaid
اللغة الإنجليزية والمشاكل البرمجية ومهارة البحثاللغة الإنجليزية والمشاكل البرمجية ومهارة البحث
اللغة الإنجليزية والمشاكل البرمجية ومهارة البحث
anees abu-hmaid5.2K visualizações
دورة CSS3 باللغة العربية por anees abu-hmaid
دورة CSS3 باللغة العربيةدورة CSS3 باللغة العربية
دورة CSS3 باللغة العربية
anees abu-hmaid6.4K visualizações
مهووس الحاسوب Computer Geek por anees abu-hmaid
مهووس الحاسوب Computer Geekمهووس الحاسوب Computer Geek
مهووس الحاسوب Computer Geek
anees abu-hmaid3.6K visualizações
لا تكرر نفسك DRY (Don't Repeat yourself) por anees abu-hmaid
لا تكرر نفسك DRY (Don't Repeat yourself)لا تكرر نفسك DRY (Don't Repeat yourself)
لا تكرر نفسك DRY (Don't Repeat yourself)
anees abu-hmaid1.1K visualizações

Web performance - الجزء الثاني

  • 1. ‫الرحيم‬ ‫الرحمن‬ ‫الله‬ ‫بسم‬ ‫منه‬ ‫كان‬ ‫من‬ ُ‫د‬‫ويزي‬ ، ً ‫ّا‬‫جي‬‫ن‬ ‫ناداه‬ ‫من‬ ‫ُجيب‬‫ي‬‫و‬ ، ً ‫خفيا‬ ‫دعاه‬ ‫من‬ ‫ُحب‬‫ي‬ ،‫العالمين‬ ّ ‫رب‬ ‫لله‬ ‫حمد‬‫ل‬‫ا‬ .‫العالمين‬ ّ ‫رب‬ ‫لله‬ ‫حمد‬‫ل‬‫ا‬ ، ً ‫ّا‬‫رضي‬ ‫الوعد‬ ‫صادق‬ ‫كان‬ ‫من‬ ‫ويهدي‬ ، ً ‫ّا‬‫وفي‬ ‫له‬ ‫كان‬ ‫من‬ ‫يكرم‬‫و‬ ، ً ‫ّا‬‫ي‬ِ‫حي‬ Web performance - 2 ‫في‬ ‫جزء‬‫ل‬‫ا‬ ‫الأول‬ ‫من‬ ‫هذه‬ ‫السلسلة‬ ‫حدثنا‬‫ت‬ ‫عن‬ ‫مجموعة‬ ‫من‬ ‫المفاهيم‬ ‫العامة‬ ‫حول‬ ‫ال‬ Web performance ‫ولماذا‬ ‫جب‬‫ي‬ ‫أن‬ ‫نهتم‬ ‫بهذا‬ ،‫الموضوع‬ ‫والآن‬ ‫سندخل‬ ‫في‬ ‫بعض‬ ‫التفاصيل‬ ‫بشكل‬ …‫عمقا‬ ‫أكثر‬ ‫عندما‬ ‫حدث‬‫ت‬‫ن‬ ‫عن‬ ‫ال‬ Web performance ‫فإننا‬ ‫حدث‬‫ت‬‫ن‬ ‫عن‬ ‫وسيلة‬ ‫قياس‬ ‫موضوعية‬ ‫للأداء‬ ‫بالإضافة‬ ‫إلى‬ ‫جربة‬‫ت‬ ‫المستخدم‬ ‫المتوقعة‬ ‫في‬ ‫الموقع‬ ‫خاص‬‫ل‬‫ا‬ ‫بنا‬ ‫بناء‬ ‫على‬ ‫ال‬ Business model ، ،‫خيلي‬‫ت‬ ‫أو‬ ‫حقيقي‬ ‫بشكل‬ ‫أسرع‬ ‫الإلكتروني‬ ‫الموقع‬ ‫جعل‬‫ن‬ ‫أن‬ ‫وهو‬ ،‫سابقا‬ ‫كرناه‬ ‫ذ‬ ‫ما‬ ‫يعني‬ ‫وهذا‬ ‫جعل‬‫ت‬ ‫التي‬ ‫الأساليب‬ ‫بعض‬ ‫استخدام‬ ‫خلال‬ ‫من‬ ‫خيلي‬‫ت‬‫و‬ ،‫الفعلية‬ ‫السرعة‬ ‫يادة‬‫بز‬ ‫حقيقي‬‫ل‬‫ا‬ ‫بشكله‬ :‫التالية‬ ‫الأسئلة‬ ‫إجابة‬ ‫يشمل‬ ‫كله‬ ‫للمستخدم…وهذا‬ ‫أسرع‬ ‫وكأنها‬ ‫تظهر‬ ‫البطيئة‬ ‫العمليات‬ ‫بعض‬ 1 . ‫بسرعة؟‬ ‫تحميله‬ ‫تم‬ ‫الموقع‬ ‫هل‬ 2 . ‫بسرعة؟‬ ‫المستخدم‬ ‫قبل‬ ‫من‬ ‫معه‬ ‫بالتفاعل‬ ‫يسمح‬ ‫الموقع‬ ‫هل‬ 3 . ‫حتاج‬‫ت‬ ‫ما‬ ‫عملية‬ ‫هناك‬ ‫بأن‬ ‫المستخدم‬ ‫لإعلام‬ ‫الوسائل‬ ‫بعض‬ ‫استخدام‬ ‫أو‬ ‫توفير‬ ‫يتم‬ ‫هل‬ ‫إلى‬ ‫وقت؟‬ ‫مثلا‬ ‫إظهار‬ loading spinner ‫؟‬
  • 2. 4 . ‫وهل‬ ‫وسلس؟‬ ‫سهل‬ ‫بشكل‬ ‫الصفحة‬ ‫في‬ ‫المعروضة‬ ‫البيانات‬ ‫بين‬ ‫التنقل‬ ‫عملية‬ ‫تتم‬ ‫هل‬ ‫عملية‬ ‫ال‬ scroll ‫تتم‬ ‫بشكل‬ ‫سلس‬ ‫أيضا؟‬ ‫ندركها‬ ‫أن‬ ‫جب‬‫ي‬ ‫التي‬ ‫العناوين‬ ‫من‬ ‫مهمة‬ ‫مجموعة‬ ‫هناك‬ ‫أن‬ ‫القول‬ ‫يمكن‬ ،‫أعلاه‬ ‫كر‬ ‫ذ‬ ‫ما‬ ‫على‬ ‫بناء‬ ‫أو‬ ‫أن‬ ‫ندرسها‬ ‫أو‬ ‫أن‬ ‫حدث‬‫ت‬‫ن‬ ‫عنها‬ ‫ضمن‬ ‫سياق‬ ‫حديث‬‫ل‬‫ا‬ ‫عن‬ ‫ال‬ Web performance ، ‫وهي‬ :‫يلي‬ ‫بما‬ ‫سردها‬ ‫ويمكن‬ ،‫الأداء‬ ‫مشاكل‬ ‫جة‬‫ل‬‫معا‬ ‫أو‬ ‫لقياس‬ ‫الرئيسية‬ ‫الأبواب‬ ● Reducing overall load time : ‫تقليل‬ ‫الوقت‬ ‫الإجمالي‬ ‫لتحميل‬ ‫الموقع‬ ‫الإلكتروني‬ ،‫مهمة‬ ‫نقاط‬ ‫بعدة‬ ‫التفكير‬ ‫عليك‬ ‫بهذا‬ ‫وللقيام‬ ،‫به‬ ‫التفكير‬ ‫يمكنك‬ ‫ما‬ ‫أول‬ ‫بك‬ ‫خاص‬‫ل‬‫ا‬ :‫وهي‬ ○ ‫ما‬ ‫هو‬ ‫الوقت‬ ‫الإجمالي‬ ‫اللازم‬ ‫لتحميل‬ ‫جميع‬ ‫ال‬ files ‫ية‬‫الضرور‬ ‫على‬ ‫جهاز‬ ‫المستخدم؟‬ ○ ‫ما‬ ‫هي‬ ‫جام‬‫ح‬‫الأ‬ ‫خاصة‬‫ل‬‫ا‬ ‫بهذه‬ ‫ال‬ files ‫؟‬ ○ ‫ما‬ ‫هو‬ ‫عدد‬ ‫هذه‬ ‫ال‬ files ‫؟‬ ‫تمثل‬ ‫والتي‬ ‫المشكلة‬ ‫هذه‬ ‫حل‬‫ل‬ ‫اتباعها‬ ‫يمكنك‬ ‫التي‬ ‫جيات‬‫ي‬‫الإسترات‬ ‫من‬ ‫العديد‬ ‫هناك‬ ،‫تقنيا‬ :‫هي‬ ‫جيات‬‫ي‬‫الاسترات‬ ‫هذه‬ ‫ومن‬ ،‫السابقة‬ ‫الأسئلة‬ ‫على‬ ‫إجابة‬ ‫ما‬ ‫بشكل‬ ○ ‫يمكن‬ ‫ما‬ ‫أصغر‬ ‫إلى‬ ‫الملفات‬ ‫جم‬‫ح‬ ‫تقليل‬ ○ ‫تقليل‬ ‫عدد‬ ‫ال‬ HTTP request ‫قدر‬ ‫الإمكان‬ ○ ‫مثل‬ ،‫ممكن‬ ‫وقت‬ ‫أقرب‬ ‫في‬ ‫الملفات‬ ‫تحميل‬ ‫في‬ ‫تساهم‬ ‫تقنيات‬ ‫استخدام‬ ‫استخدام‬ ‫ال‬ Preload .
  • 3. ● Making the site usable as soon as possible : ‫من‬ ‫البديهي‬ ‫أن‬ ‫الموقع‬ ‫كلما‬ ‫هذا‬ ‫جعل‬‫ل‬‫و‬ ،‫المستخدم‬ ‫وبين‬ ‫بينه‬ ‫الثقة‬ ‫زادت‬ ‫كلما‬ ،‫للاستخدام‬ ‫قابليته‬ ‫في‬ ‫أسرع‬ ‫كان‬ ‫ممكنا‬ ‫جب‬‫ي‬ ‫أن‬ ‫نهتم‬ ‫بكيفية‬ ‫تحميل‬ ‫ال‬ assets ‫خاصة‬‫ل‬‫ا‬ ‫بالموقع‬ ،‫الإلكتروني‬ ‫وهذا‬ ‫يعني‬ ‫ترتيب‬ ‫ال‬ assets ‫المراد‬ ‫تحميلها‬ ‫بشكل‬ ،‫منطقي‬ ‫حيث‬‫ب‬ ‫يتمكن‬ ‫المستخدم‬ ‫من‬ ‫إجراء‬ ‫أول‬ action ‫حتاجه‬‫ي‬ ،‫بسرعة‬ ‫وهذه‬ ‫فكرة‬ ،‫بسيطة‬ ‫فالملفات‬ ‫التي‬ ‫لن‬ ‫حتاجها‬‫ي‬ ‫المستخدم‬ ،‫فورا‬ ‫بال‬ ‫هذا‬ ‫وسيتم‬ ،‫المطلوبة‬ ‫الملفات‬ ‫تحميل‬ ‫من‬ ‫ننتهي‬ ‫حتى‬ ‫تحميلها‬ ‫تأجيل‬ ‫يمكننا‬ background ‫دون‬ ‫أن‬ ‫يشعر‬ ‫المستخدم‬ ،!‫بذلك‬ ‫ما‬‫ك‬ ‫يمكن‬ ‫فصل‬ ‫الملفات‬ ‫التي‬ ‫لا‬ ‫حتاجها‬‫ن‬ ‫جلبها‬‫ن‬‫و‬ ‫عند‬ ‫الضرورة‬ ‫فقط‬ ( lazy loading ،) ‫وهذا‬ ‫الوقت‬ ‫حتى‬ ‫يصبح‬ ‫كل‬ ‫شيء‬ ‫جاهزا‬ ‫للتفاعل‬ ‫يطلق‬ ‫عليه‬ time to interactive . ● Smoothness and interactivity : ‫تعد‬ ‫هذه‬ ‫النقطة‬ ‫من‬ ‫النقاط‬ ‫البديهية‬ ،‫والبسيطة‬ ‫يقصد‬‫و‬ ،‫مشاكل‬ ‫فيها‬ ‫وجد‬ ‫إن‬ ‫المستخدم‬ ‫يزعج‬ ‫قد‬ ‫ما‬ ‫أكثر‬ ‫من‬ ‫الوقت‬ ‫نفس‬ ‫في‬ ‫لكنها‬ ‫خاصة‬‫ل‬‫ا‬ ‫المكونات‬ ‫مع‬ ‫التفاعل‬ ‫على‬ ‫والقدرة‬ ‫والسلاسة‬ ‫السهولة‬ ‫مقدار‬ ‫هو‬ ‫النقطة‬ ‫بهذه‬ ‫بالموقع‬ ،‫الإلكتروني‬ ‫وهذا‬ ‫يشمل‬ ‫الكثير‬ ‫من‬ ‫الأشياء‬ ‫منها‬ ،‫مثلا‬ ‫هل‬ ‫ال‬ scroll ‫يعمل‬ ‫بشكل‬ ‫سلس؟‬ ‫هل‬ ‫ال‬ buttons ‫يمكن‬ ‫الضغط‬ ‫عليها؟‬ ‫هل‬ ‫ال‬ popup ‫تظهر‬ ‫للمستخدم‬ ‫بسرعة؟‬ ‫هل‬ ‫هناك‬ ‫مشاكل‬ ‫بال‬ animation ،‫؟‬ ‫هذه‬ ‫المشاكل‬ ‫كلها‬ ‫إن‬ ‫وجدت‬ ‫يمكن‬ ‫ال‬ ‫استخدام‬ ‫منها‬ ،‫سلس‬ ‫التطبيق‬ ‫من‬ ‫جعل‬‫ت‬ ‫والتي‬ ‫الطرق‬ ‫من‬ ‫والعديد‬ ‫بالكثير‬ ‫حلها‬ css animation ‫بدلا‬ ‫من‬ js Animation ، ‫وتقليل‬ ‫عمليات‬ ‫ال‬ repaints ‫لل‬ UI ‫من‬ ‫خلال‬ ‫ال‬ DOM ‫قدر‬ .‫الإمكان‬
  • 4. ● Perceived performance : ‫إن‬ ‫مقدار‬ ‫الإحساس‬ ‫بسرعة‬ ‫الموقع‬ ‫للمستخدمين‬ ‫وطبيعة‬ ‫تبني‬ ‫قد‬ ‫لأنك‬ ،!‫للموقع‬ ‫حقيقية‬‫ل‬‫ا‬ ‫السرعة‬ ‫من‬ ‫أهم‬ ‫الإحساس‬ ‫هذا‬ ‫على‬ ‫بناء‬ ‫إنفعالاتهم‬ ‫تعد‬ ‫لذلك‬ ،!‫جربته‬‫ت‬ ‫على‬ ‫بناء‬ ‫سيء‬ ‫يراه‬ ‫المستخدم‬ ‫لكن‬ ،‫القياس‬ ‫خلال‬ ‫من‬ ‫يع‬‫سر‬ ‫موقع‬ ‫الأمر‬ ‫هذا‬ ،‫لكن‬ ،‫الأهم‬ ‫تكن‬ ‫لم‬ ‫إن‬ ‫مهمة‬ ‫عملية‬ ‫المستخدمين‬ ‫قبل‬ ‫من‬ ‫الأداء‬ ‫ية‬‫رؤ‬ ‫خلال‬ ‫من‬ ‫الأداء‬ ‫قياس‬ ‫على‬ ‫تعتمد‬ ‫العملية‬ ‫هذه‬ ‫لأن‬ ‫وذلك‬ ،‫قياسه‬ ‫السهل‬ ‫من‬ ‫ليس‬ ‫حفاظ‬‫ل‬‫ا‬ ‫كيفية‬ ‫على‬ ‫هنا‬ ‫حرص‬‫ل‬‫ا‬ ‫يتم‬ ،‫لذلك‬ ،‫للموقع‬ ‫المستخدمون‬ ‫منها‬ ‫ينظر‬ ‫التي‬ ‫ية‬‫الزاو‬ ‫إظهار‬ ‫لذلك‬ ‫الوسائل‬ ‫ومن‬ ،‫الانتظار‬ ‫وقت‬ ‫في‬ ‫الموقع‬ ‫مع‬ ‫متفاعلا‬ ‫وإبقائه‬ ‫المستخدم‬ ‫على‬ ‫ال‬ spinner ‫أو‬ ‫مجموعة‬ ‫من‬ ‫ال‬ hints ‫المتعلقة‬ ‫خدمات…إلى‬‫ل‬‫با‬ ،‫آخره‬ ‫ومع‬ ‫أنك‬ ‫في‬ ‫مع‬ ‫بالتفاعل‬ ‫قمت‬ ‫أنك‬ ‫إلا‬ ،‫القياسية‬ ‫الناحية‬ ‫من‬ ‫الموقع‬ ‫سرعة‬ ‫يادة‬‫بز‬ ‫هنا‬ ‫تقم‬ ‫لم‬ ‫الواقع‬ ‫شعورا‬ ‫يعطيه‬‫و‬ ،‫عطل‬ ‫أي‬ ‫هناك‬ ‫يوجد‬ ‫ولا‬ ،‫يعمل‬ ‫زال‬ ‫ما‬ ‫الموقع‬ ‫بأن‬ ‫ليشعر‬ ‫المستخدم‬ …‫العمليات‬ ‫استمرار‬ ‫أو‬ ‫حدوث‬‫ب‬ ‫متغيرا‬ ● Performance measurements : ‫في‬ ‫هذه‬ ‫جزئية‬‫ل‬‫ا‬ ‫سنقوم‬ ‫بقياس‬ ‫الأداء‬ ‫بشكل‬ ‫في‬ ‫ستساعدنا‬ ‫التي‬ ‫الوسائل‬ ‫أو‬ ‫العمليات‬ ‫أو‬ ‫حسابات‬‫ل‬‫ا‬ ‫من‬ ‫مجموعة‬ ‫خلال‬ ‫من‬ ‫حقيقي‬ ‫هل‬ ،‫فاشلة‬ ‫أم‬ ‫حة‬‫ج‬‫نا‬ ‫هي‬ ‫هل‬ ،‫الأداء‬ ‫ناحية‬ ‫من‬ ‫يقدمها‬ ‫التي‬ ‫خدمات‬‫ل‬‫وا‬ ‫التطبيق‬ ‫تقييم‬ ‫مع‬ ‫ثباتها‬ ‫أو‬ ‫حسنها‬‫ت‬ ‫نضمن‬ ‫وهل‬ ،‫الوقت‬ ‫مع‬ ‫جودة‬‫ل‬‫ا‬ ‫مستوى‬ ‫على‬ ‫حافظة‬‫م‬‫ال‬ ‫استطعنا‬ …!‫سوء‬ ‫تزداد‬ ‫الوقت‬ ‫مع‬ ‫أنها‬ ‫أم‬ ،‫الوقت؟‬ ‫خصائص‬‫ل‬‫ا‬ ‫من‬ ‫والعديد‬ ‫الكثير‬ ‫هناك‬ ‫بأن‬ ‫القول‬ ‫يمكننا‬ ،‫نقاط‬ ‫من‬ ‫سبق‬ ‫ما‬ ‫على‬ ‫بناء‬ ‫والإضافات‬ ‫والوسائل‬ ‫التي‬ ‫يمكنها‬ ‫أن‬ ‫تؤثر‬ ‫على‬ ‫ال‬ Performance ‫بشكل‬ ‫حقيقي‬ ‫ومباشر‬ ‫أو‬
  • 5. ‫كز‬ ‫تر‬ ‫أعلاه‬ ‫وردت‬ ‫التي‬ ‫النقاط‬ ‫جميع‬ ‫فإن‬ ،‫لذلك‬ ،‫المستخدم‬ ‫قبل‬ ‫من‬ ‫وشعوري‬ ‫خيلي‬‫ت‬ ‫بشكل‬ ‫لبناء‬ ‫بالإضافة‬ ،‫التفاعل‬ ‫لبدء‬ ‫اللازم‬ ‫والوقت‬ ‫حتوى‬‫م‬‫ال‬ ‫لتحميل‬ ‫اللازم‬ ‫الوقت‬ ‫تقليل‬ ‫على‬ ‫وتهتم‬ …‫المستخدمين‬ ‫مع‬ ‫جيدة‬ ‫جربة‬‫ت‬ :‫مهمة‬ ‫ومفردات‬ ‫مصطلحات‬ ● latency : ‫يقصد‬ ‫بذلك‬ ‫الوقت‬ ‫المستغرق‬ ‫لإرسال‬ ‫حزمة‬ ‫من‬ ‫البيانات‬ ‫من‬ ‫نقطة‬ ‫إلى‬ ‫نقطة‬ ‫أخرى‬ ‫(من‬ ‫ال‬ source ‫إلى‬ destination ) ‫مع‬ ‫الوقت‬ ‫المستغرق‬ ‫لاستقبال‬ ‫النتيجة‬ ‫من‬ ‫قبل‬ ‫ال‬ source ،‫جددا‬‫م‬ ،‫باختصار‬ ‫هو‬ ‫الوقت‬ ‫المستغرق‬ ‫من‬ ‫حظة‬‫ل‬ ‫إرسال‬ request ‫من‬ ‫قبل‬ ‫المستخدم‬ ‫ولغاية‬ ‫عودة‬ ‫ال‬ response ،‫إليه‬ ‫وكلما‬ ‫قلت‬ ‫قيمة‬ ‫ال‬ latency ‫كلما‬ ‫كان‬ ‫الأداء‬ ،!‫أفضل‬ ‫وكلما‬ ‫زادت‬ ‫قيمة‬ ‫ال‬ latency ‫كلما‬ ‫كان‬ ‫الأداء‬ …‫أسوأ‬ ● preload : ‫هي‬ ‫قيمة‬ ‫يتم‬ ‫استخدامها‬ ‫أو‬ ‫وضعها‬ ‫داخل‬ ‫ال‬ rel attribute ‫في‬ ‫ال‬ link tag ، ‫هذه‬ ‫القيمة‬ ‫ببساطة‬ ‫تقوم‬ ‫على‬ ‫إعطاء‬ ‫ية‬‫أولو‬ ‫جلب‬‫ل‬ ‫ال‬ resources ‫المهمة‬ ‫خصوصا‬ ‫وعديدة‬ ‫كثيرة‬ ‫مزايا‬ ‫القيمة‬ ‫هذه‬ ‫وتقدم‬ ،‫وقت‬ ‫أسرع‬ ‫في‬ ‫للصفحة‬ ‫ية‬‫والضرور‬ ‫جم‬‫ح‬‫ال‬ ‫ذو‬ ‫الفيديو‬ ‫أو‬ ‫سكربت‬ ‫جافا‬‫ل‬‫ا‬ ‫ملفات‬ ‫أو‬ ‫خطوط‬‫ل‬‫ا‬ ‫ملفات‬ ‫أو‬ ‫الصور‬ ‫جلب‬ ‫عند‬ ‫الكبير…إلى‬ ،‫آخره‬ ‫من‬ ‫المزايا‬ ‫التي‬ ‫تقدمها‬ ‫أنك‬ ‫ستضمن‬ ‫تحميل‬ ‫ال‬ resource ‫المطلوبة‬ ‫من‬ ‫تحميله‬ ‫تم‬ ‫ما‬ ‫خزين‬‫ت‬ ‫وسيتم‬ ،‫بدونها‬ ‫كانت‬ ‫لو‬ ‫مما‬ ‫أفضل‬ ‫وبشكل‬ ‫المتوقعة‬ ‫ية‬‫بالأولو‬ resource ‫في‬ ‫ال‬ cache ‫خاص‬‫ل‬‫ا‬ ‫بالمتصفح‬ ‫ليقوم‬ ‫باستخدامها‬ ‫في‬ ‫صفحة‬ ‫أخرى‬ ‫عند‬ ،…‫حاجة‬‫ل‬‫ا‬ ‫وهذا‬ ‫كله‬ ‫يؤثر‬ ‫جابا‬‫ي‬‫إ‬ ‫على‬ ‫ال‬ performance ‫حسنه‬‫ي‬‫و‬ ‫بشكل‬ …‫ملحوظ‬
  • 6. ● lazy loading : ‫بكل‬ ‫بساطة‬ ‫هي‬ ‫جية‬‫ي‬‫استرات‬ ‫تفصل‬ ‫ال‬ resource ‫الغير‬ ‫مهمة‬ ‫في‬ ‫ال‬ render ‫أو‬ ‫التي‬ ‫لا‬ ‫توقف‬ ‫أو‬ ‫تؤثر‬ ‫على‬ ‫ال‬ render ‫خاص‬‫ل‬‫ا‬ ‫بالصفحة‬ ‫عن‬ ‫ال‬ resource ،‫المهمة‬ ‫ومن‬ ‫ثم‬ ‫جلب‬ ‫هذه‬ ‫ال‬ resource ‫عند‬ ‫حاجة‬‫ل‬‫ا‬ ،!‫فقط‬ ،‫مثلا‬ ‫قد‬ ‫إذا‬ ‫إلا‬ ‫للمستخدم‬ ‫بعرضها‬ ‫تقوم‬ ‫التي‬ ‫الصفحة‬ ‫في‬ ‫وصورة‬ ‫سكربت‬ ‫جافا‬ ‫ملف‬ ‫جلب‬ ‫تمنع‬ ‫قام‬ ‫بالضغط‬ ‫على‬ ‫زر‬ ‫عرض‬ ‫ال‬ modal ،… ‫هناك‬ ‫الكثير‬ ‫من‬ ‫الطرق‬ ‫للقيام‬ ‫بهذه‬ ،‫جية‬‫ي‬‫الاسترات‬ ‫لكنها‬ ‫بشكل‬ ‫عام‬ ‫تقوم‬ ‫على‬ ‫عمل‬ splitting ‫لل‬ js, css ‫وال‬ Html ‫حاجة‬‫ل‬‫ا‬ ‫عند‬ ‫فقط‬ ‫المطلوبة‬ ‫الملفات‬ ‫تضمين‬ ‫يمكن‬ ‫حيث‬‫ب‬ ،‫ممكن‬ ‫جم‬‫ح‬ ‫أصغر‬ ‫على‬ ‫لتكون‬ ‫مثل‬ ‫مسبقا‬ ‫والمعرفة‬ ‫الموجودة‬ ‫خصائص‬‫ل‬‫وا‬ ‫الوسائل‬ ‫لبعض‬ ‫بالإضافة‬ ،‫غيرها‬ ‫دون‬ ‫استخدام‬ ‫ال‬ module type ‫لملفات‬ ‫جافا‬‫ل‬‫ا‬ …‫سكربت‬ ● time to interactive : ‫هذا‬ ‫المصطلح‬ ‫يشير‬ ‫إلى‬ ‫مقياس‬ ‫حساب‬‫ل‬ ‫الوقت‬ ‫الزمني‬ ‫آخر‬ ‫هي‬ ،‫أدق‬ ‫تقني‬ ‫وبشكل‬ ،‫كامل‬ ‫بشكل‬ ‫للتفاعل‬ ‫قابلة‬ ‫الصفحة‬ ‫لتصبح‬ ‫المستغرق‬ long task ‫تم‬ ‫الإنتهاء‬ ‫منها‬ ‫يليها‬ 5 ‫ثواني‬ ‫بدون‬ ‫أي‬ ‫نشاط‬ ‫على‬ ‫مستوى‬ ‫ال‬ network ‫أو‬ ‫ال‬ thread ، ‫وال‬ long task ‫هي‬ ‫أي‬ ‫مدة‬ ‫زمنية‬ ‫تزيد‬ ‫أو‬ ‫تساوي‬ 50ms ‫تكون‬ ‫فيها‬ ‫ال‬ thread ‫مشغولة‬ ‫بدون‬ ‫أي‬ …‫قطع‬ …‫الله‬ ‫شاء‬ ‫إن‬ ‫الثالث‬ ‫جزء‬‫ل‬‫ا‬ ‫في‬ ‫يتبع‬