بدون رفع, 100% محلي، بدون حساب

مقال

ما هي المعالجة من جانب العميل؟

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

طريقتان لعمل الأداة: جهازك أو جهازهم

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

ما الذي أضافه WebAssembly للمتصفح

لسنوات طويلة كانت المتصفحات لا تنفذ إلا JavaScript، وهي جيدة للواجهات لكنها بطيئة جداً لمهام مثل إعادة ترميز فيديو أو ضغط صورة كبيرة. غيّر WebAssembly (المعروف اختصاراً بـ WASM) ذلك. إنه صيغة ثنائية مدمجة تستطيع المتصفحات تنفيذها بسرعة تقترب من السرعة الأصلية، فيمكن تجميع كود مكتوب بلغة C أو C++ إلى WASM وتشغيله داخل تبويب المتصفح دون أي إضافة. نفس مكتبات الضغط والترميز التي تشغّل البرامج المكتبية تعمل الآن مباشرة في الصفحة. JavaScript وWebAssembly يعملان معاً: JavaScript تتولى الواجهة والتنسيق، بينما يتولى WASM العمليات الحسابية المكثفة.

ما الذي يحدث فعلاً أثناء معالجة الملف

حين تسقط ملفاً على أداة من جانب العميل، تحمّل الصفحة محرك معالجة صغيراً (في الغالب وحدة WASM) إن لم تكن قد فعلت ذلك بالفعل، ثم تمرر الملف إليه عبر JavaScript. تجري المعالجة الفعلية عادةً على خيط خلفية يُسمى Web Worker، مما يبقي واجهة المتصفح مستجيبة أثناء تنفيذ العمل. يمكنك فتح تبويب الشبكة في متصفحك في أي لحظة خلال هذه العملية، ولن يظهر أي طلب يحمل ملفك. يُجمَّع المخرج في الذاكرة ويُقدَّم لك كتنزيل.

مقايضات صادقة يجب أن تعرفها

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

الأدوات المذكورة في هذا المقال

الأسئلة الشائعة

هل المعالجة من جانب العميل تعني تلقائياً أن بياناتي خاصة؟

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

لماذا يكون الاستخدام الأول للأداة أبطأ أحياناً؟

يحتاج المتصفح إلى تحميل محرك المعالجة (وحدة WASM) في أول استخدام، وقد يستغرق ذلك ثوانٍ قليلة بحسب حجمه وسرعة اتصالك. بعد ذلك يُخزَّن المحرك محلياً، فتبدأ الجلسات اللاحقة فوراً وتعمل الأداة دون إنترنت.