تخطٍّ إلى المحتوى
FileSlimmer
الأدوات
الأدلة

أدوات الشيفرة

تحلّل هذه الأدوات الثلاث شيفرتك المصدرية وتعيد كتابتها ثم تطبعها من جديد. أما ما لا تفعله أبدًا فهو تشغيلها. هذا الفارق هو نموذج الأمان كله هنا، وهو مفروض في الشيفرة لا موعود به في جملة.

شيفرتك تُحلَّل ولا تُنفَّذ

على المصغّر أن يفهم شيفرتك، أي أن يحلّلها إلى شجرة صياغية ثم يطبع تلك الشجرة من جديد. وهو لا يحتاج إلى تقييم أي شيء، وهذا المصغّر لا يفعل: لا eval، ولا Function ديناميكية، ولا معاينة تشغّل نصك البرمجي.

وهذا يهمّ في SVG أكثر من غيره. فملف SVG مستند قابل للتنفيذ — إذ يمكن أن يحمل نصوصًا برمجية ومعالِجات أحداث وعناوين “javascript:”. وكل واحد من هذه يُزال مرتين: مرة بقاعدة المحسّن نفسه، ومرة أخرى بمرحلة مستقلة تجري بعده، لأن مرشّحًا واحدًا فيه خلل واحد ليس نموذج أمان.

ما الذي يوفّره التصغير فعلًا

إزالة المسافات البيضاء واختصار الأسماء المحلية تقتطع عادةً ثلث الشيفرة الخام. ومعظم المكسب المتبقي يأتي من ضغط خادمك لا من المصغّر، لذا فالمقارنة الواقعية هي ملف مصغَّر ثم مضغوط بـ gzip — لا عدد البايتات الخام.

الاستيرادات تُترك كما هي

يُحفظ @import في CSS نصًا كما هو، أو يُزال عند الطلب. ولا يُتبَع أبدًا: فجلب ما يشير إليه يعني أن هذه الصفحة أرسلت طلبًا نيابةً عنك بشأن ملف ألصقته أنت، وهو بالضبط ما بُني بقية الموقع كي لا يفعله.

الأدلة

الأدلة