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

كيف تعمل معالجة الملفات محلياً داخل المتصفح

آخر مراجعة

إذا لم يُرفع أي شيء، فمن الذي ينجز العمل فعلاً، وأين؟

4 دقيقة قراءة · روجع في 17 أغسطس 2026

ما معنى «محلي» هنا

المحوّل الإلكتروني التقليدي موقع ويب فيه نقطة رفع. يُنقل ملفك إلى جهاز لا تتحكم فيه، ويُعالَج هناك، ويُخزَّن مدةً ما، ثم يُعاد إليك للتنزيل. أما المعالجة المحلية فتحذف منتصف تلك الجملة: الشيفرة التي تقرأ ملفك تعمل داخل تبويب المتصفح المفتوح أمامك، على معالجك أنت، وتُكتب النتيجة عائدةً إلى قرصك أنت.

ولا يزال الموقع نفسه يُجلب عبر الشبكة — إذ تصل صفحات HTML وأوراق الأنماط والنصوص البرمجية ووحدات WebAssembly كلها من خادم، مثل أي صفحة ويب. والفرق هو في الاتجاه: شيفرة البرنامج تنزل، وملفك أنت لا يصعد.

المتصفح يحتوي القطع أصلاً

مزايا المنصّة التي تُبنى منها أداة ملفات محلية
الميزةما توفّره
واجهتا File و Blobقراءة بايتات ملف اختاره المستخدم أو أفلته، دون إرسال نموذج
Web Workersتنفيذ العمل الثقيل على خيط خلفي كي تبقى الواجهة مستجيبة
WebAssemblyتشغيل مكتبات ترميز مكتوبة بلغات C أو C++ أو Rust بسرعة قريبة من السرعة الأصلية
Canvas و OffscreenCanvasفك ترميز الصور ورسمها وتغيير مقاسها وإعادة ترميزها
WebCodecsالوصول إلى مُرمِّزات ومفكّكات الفيديو المسرَّعة عتادياً في المتصفح نفسه
WebGPUتشغيل استدلال النماذج والعمل المتوازي على البكسلات عبر معالج الرسوميات
File System Accessكتابة النتيجة مباشرة في موقع يختاره المستخدم، حيثما كان مدعوماً

لا شيء من هذا غريب. إنها المنصّة نفسها التي تشغّل الجداول الحسابية وأدوات التصميم والألعاب داخل تبويب. والقرار غير المعتاد الوحيد هو رفض إضافة خادم إليها.

المسار الذي يسلكه الملف

  • تختار ملفاً. فيسلّم المتصفح الصفحة مقبضاً إليه — لا نسخة منه، بل مرجعاً.
  • تقرأ الصفحة البايتات الأولى لتحديد نوع الملف الحقيقي من بصمته، بدل الوثوق بالامتداد.
  • تقدّر مقدار الذاكرة التي تحتاجها المهمة، وترفض العمل أو تضعه في طابور إذا تجاوز ما يستطيع الجهاز توفيره بأمان.
  • تُنقل البايتات إلى Web Worker. ونقل ArrayBuffer ينقل الملكية بدل النسخ، فلا يوجد الملف الكبير مرتين في الذاكرة.
  • وداخل العامل، يتولى مرمّز WebAssembly أو واجهة من واجهات المنصّة فك الترميز والترميز الفعليين.
  • تعود النتيجة على هيئة بايتات، وتُغلَّف في Blob، ثم تُعرض عليك للتنزيل أو تُكتب في موقع تختاره.
  • يُبطل الرابط المؤقت لذلك الـ Blob وتُحرَّر الذواكر المؤقتة.

لماذا كان WebAssembly هو الجزء الذي غيّر المعادلة

مرمّزات الصور والفيديو هي حصيلة عقود من شيفرة C المحسَّنة بعناية. وإعادة كتابتها بلغة JavaScript لم تكن يوماً خياراً واقعياً. أما WebAssembly فهو صيغة تعليمات ثنائية محمولة تنفّذها المتصفحات داخل صندوق رملي بسرعة قريبة من الشيفرة الأصلية، ما يعني أن تلك المكتبات القائمة يمكن ترجمتها وشحنها إلى المتصفح كما هي.

والصندوق الرملي لا يقل أهمية عن السرعة. فوحدة WebAssembly لا تملك وصولاً تلقائياً إلى نظام ملفاتك ولا إلى شبكتك ولا إلى تبويباتك الأخرى. إنها ترى الذاكرة التي تسلّمها الصفحة إياها ولا شيء سواها. ولا يستطيع مرمّز خبيث، أو حتى مرمّز معطوب فحسب، أن يشرد ويقرأ شيئاً لم يُعطَ له.

ما الذي يمرّ عبر الشبكة، ولماذا ليس ملفك منه

ثلاثة أشياء تصل عبر الشبكة: الصفحة نفسها، ومحرّك الأداة التي فتحتها، وأوزان النموذج في حالة إزالة الخلفية. وهذه الثلاثة كلها ملفات ثابتة تخص FileSlimmer وحده، وتُجلب من مصدر FileSlimmer نفسه قبل أن تُقرأ أي بايتة من بايتاتك. إنها تنزيلات قابلة للتخزين المؤقت، وبعد الاستخدام الأول يمكن تقديمها من ذاكرة المتصفح المؤقتة دون أي اتصال بالشبكة إطلاقاً.

وكل ما يلي تلك النقطة محلي. فالمحرّكات لا تتلقى بايتات الملفات إلا عبر postMessage من الصفحة؛ ولا يُعطى أي منها رابطاً يرسل إليه شيئاً، كما تقيّد سياسة أمان المحتوى الوجهات التي يمكن للصفحة الاتصال بها حتى لو حاولت شيفرة ما ذلك.

المفاضلات، بصراحة

المعالجة المحلية في مقابل المعالجة على خادم
الاعتبارفي متصفحكعلى خادم
إلى أين يذهب ملفكلا مكانإلى جهاز لا تتحكم فيه
السرعةبقدر ما يستطيع جهازكبقدر ما دفع مشغّل الخدمة
الملفات الضخمة جداًمقيّدة بذاكرة المتصفحمقيّدة بحدود مشغّل الخدمة
العمل دون اتصالنعم، بعد تخزين المحرّك مؤقتاًلا
الصيغ النادرةفقط ما يمكن ترجمته إلى WebAssemblyأي شيء يثبّته مشغّل الخدمة
دفعة من ألف ملفمحدودة بإمكانات الجهازأنسب لها عادةً

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

ما الذي لا يدّعيه هذا الكلام

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

أما الادّعاء فضيّق وقابل للتحقق: الملفات التي تختارها تُعالَج محلياً في هذا المتصفح ولا يرفعها FileSlimmer. والدليل التالي يشرح كيف تتحقق من ذلك بنفسك بدل أن تصدّقه.

أدوات لهذا الغرض

المصادر

أدلة أخرى

كل أدلة FileSlimmer