← Back to Blog

بروكسي لتجربة المواقع بسرعات إنترنت مختلفة

كمطورين، غالباً ما نختبر مواقعنا على أجهزة قوية واتصال إنترنت فائق السرعة. لكن الواقع مختلف: مستخدم في قرية نائية قد يتصفح موقعك عبر شبكة 3G متقطعة. إذا كان موقعك "ثقيلاً"، ستخسر هذا المستخدم. البروكسي يمكنه أن يلعب دور "المبطئ" (Throttler) لمحاكاة ظروف الشبكة الواقعية.

لماذا نحاكي الشبكات البطيئة؟

محاكاة السرعات المختلفة تساعدك في اكتشاف مشاكل لا تظهر في البيئة المثالية:

  • Timeout Errors: هل السكربتات الخاصة بك تفشل بوقار (Graceful Degradation) عند بطء الشبكة؟
  • Loading Order: هل يظهر المحتوى المهم أولاً أم ينتظر تحميل خطوط وإعلانات ثقيلة؟
  • Race Conditions: مشاكل التزامن التي تظهر فقط عند تأخر استجابة السيرفر.

كيفية استخدام Charles Proxy للمحاكاة

أداة Charles Proxy هي المعيار الذهبي لهذا الغرض. يمكنك إعداد "Throttling Profile" يحاكي شبكة 3G القياسية:

  • Bandwidth: 384 kbps
  • Latency: 150 ms
  • Packet Loss: 2%
مرور حركة البيانات عبر هذا البروكسي سيكشف لك تجربة المستخدم الحقيقية، مما يدفعك لتحسين زمن الاستجابة وتقليل حجم الصور.

إعداد Throttling في Squid

يمكنك أيضاً استخدام Squid Proxy لتحديد السرعة باستخدام delay_pools:


# Squid Configuration for Throttling
acl slow_users src 192.168.1.0/24
delay_pools 1
delay_class 1 1
delay_parameters 1 64000/64000 # Limit to 64KB/s
delay_access 1 allow slow_users