JavaScript هو أثقل مورد على الويب. قد تكون الصورة كبيرة (500 كيلوبايت)، لكنها لا تمنع تفاعل الصفحة. أما حزمة JavaScript بنفس الحجم فيجب تنزيلها، وتحليلها، وتجميعها، وتنفيذها قبل أن يتمكن المستخدم من التفاعل.

كل كيلوبايت مهم. لهذا السبب يعد الضغط (Minification) ممارسة قياسية. يزيل ضاغط JavaScript الزوائد لإنشاء كود رشيق وسريع.

ما هو الضغط؟

هو عملية إزالة الأحرف غير الضرورية:

  • إزالة المسافات البيضاء: المسافات، علامات الجدولة، والأسطر الجديدة.
  • إزالة التعليقات: حذف // و /* */.
  • تحسين بناء الجملة: إعادة كتابة الهياكل لتوفير البايتات.

الضغط مقابل التشويش (Obfuscation) مقابل Gzip

غالباً ما يتم الخلط بين هذه المصطلحات:

1. الضغط (Minification)

يركز على الحجم. قد يعيد تسمية المتغيرات القصيرة، لكنه لا يهدف إلى إرباك المبرمج.

2. التشويش (Obfuscation)

يركز على السرية. يعيد تسمية كل متغير بأسماء مشفرة، مما يزيد أحياناً من حجم الملف.

3. Gzip/Brotli

يحدث هذا على الخادم. يجب عليك دائماً القيام بالأمرين: الضغط (Minify) أولاً، ثم Gzip.

تأثير الأداء

لماذا تهتم بتوفير 20 كيلوبايت؟ لأنه على شبكة الجوال 3G، قد يستغرق ذلك وقتاً ملحوظاً. علاوة على ذلك، محرك V8 في المتصفح يحلل الكود المضغوط بشكل أسرع لأنه يحتوي على شجرة بناء جملة (AST) أصغر.