سؤال للمبرمجين من غير مختص

مرحبا أنا صاحب أعمال وليس لدي خبرة بمجالات البرمجة ’ وفي نفس الوقت لدي ملاحظات وأفكار أظنها موجودة أو يمكن عملها مثل :

  • هل هناك خاصية برمجية يتم إضافتها للمواقع والتطبيقات لتسريع تصفحها عند مستخدمي خطوط انترنت ضعيفة,

لأني ألاحظ أن بعض التطبيقات مثل واتساب وفيس بوك , يمكنك تصفحها وأنت في مكان لاتجود به تغطية جيدة .

هل من حلول .......

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

مرحباً @medlemine‍ 

ملاحظتك في محلها , وهناك عدة طرق لتسريع الموقع :

1- ضغط الصور المرفوع يدوياً أو برمجياً بحيث تحافظ على جودتها و وبنفس الوقت يكون تحميلها سريعاً .

2- استخدام المكاتب من روابط خارجية CDN فهذه الطريقة أسرع من تحميلها ضمن الموقع كذلك الصور والملفات يمكن رفعها على سيرفر خارجي لتخفيف الضغط على السيرفر و تسريعه .

3- استخدام أطر العمل الجديدة (Vue,React,Angular) فهي تجعل المستخدم يتنقل بين صفحات الموقع بدون حاجة لعمل رفرش أو إعادة تحميل المكتبات أو Html Code من السيرفر .

4- قد تكون المشكلة في السيرفر , فيجب تقويته أو تحديثه .

أخيراً يمكن قياس سرعة أي موقع باستخدام مواقع مثل google speed insights أو ما يشابه هذه الخدمة , وهي بدورها تعطيك الأخطاء في أي موقع , بدون الحاجة لأي خبرة برمجية بمعرفتها .

تحياتي

بالطبع يوجد العديد من العوامل التى تؤثر على سرعة تحميل الصفحات و يجب على مطور الويب الإلتزام بها كى يضمن افضل جودة عند العملاء..

و من اهم هذه العوامل:

كثرة إستخدام الإضافات المثبتة

بث مقاطع الفيديو من مواقع مثل YouTube و video و مقاطع صوتية من sound cloud.

يمكنك قياس سرعة اداء موقعك من هذا الرابط

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

1- البرنامج يقوم بعمل عدد كبير من الطلبات للخادم بدل جمع هذه الطلبات في طلب واحد. مثال ذلك: تحميل قائمة من المعلومات، لكن بدل تحميلها كلها في طلب واحد يتم تحميل كل عنصر من القائمة في طلب مستقل. حل هذه المشكلة يتم بجمع هذه الطلبات في طلب واحد، أي الطلب من الخادم تزويدكم مرة واحدة بكل المعلومات المطلوبة بدل الحصول على كل معلومة في طلب مستقل.

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

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

4- التطبيق يحمل كمية من المعلومات أكثر مما يحتاج. مثلا، عندك في الخادم قائمة ب1000 عنصر وتريد للمستخدم أن يتصفحها، فيعمل التطبيق على تحميل ال1000 عنصر كلها ثم عرض جزء منها فقط للمستخدم. الحل هنا أن تحمل فقط ما تحتاج ولا تحمل معلومات سيهملها التطبيق لاحقا.

نعم انه الساحر ال cache و service worker