Без завантаження, 100% локально, без облікового запису

Стаття

Що таке клієнтська обробка?

Більшість інструментів для роботи з файлами надсилають документ на віддалений комп'ютер, який виконує всю важку роботу і повертає результат. Клієнтська обробка працює інакше: роботу виконує ваш браузер, і файл ніколи не залишає вашого пристрою.

Два способи роботи інструменту: ваша машина чи чужа

При серверній обробці завантаження файлу нагадує здачу речей до хімчистки: ви передаєте їх, віддалена машина займається справою, ви забираєте результат пізніше. Клієнтська обробка більше схожа на прання вдома. Інструмент запускається прямо у вкладці браузера, зчитує файл із пам'яті, обробляє його і видає вам результат, і все це без передачі файлу через мережу. Сайту потрібно лише один раз доставити код обробки. Після цього все відбувається на вашому боці.

Що WebAssembly дав браузерам

Довгий час браузери могли виконувати лише JavaScript, який підходить для інтерфейсів, але надто повільний для таких завдань, як перекодування відео або стиснення великого зображення. WebAssembly (зазвичай скорочується до WASM) змінив це. Це компактний бінарний формат, який браузери можуть виконувати з майже нативною швидкістю: код, спочатку написаний на C або C++, компілюється у WASM і запускається у вкладці браузера без жодних плагінів. Ті самі кодеки та бібліотеки стиснення, що стоять за десктопним ПЗ, тепер працюють прямо на сторінці. JavaScript і WebAssembly працюють разом: JavaScript відповідає за інтерфейс і управління, а WASM бере на себе обчислення.

Що відбувається під час виконання завдання

Коли ви перетягуєте файл у клієнтський інструмент, сторінка завантажує невеликий рушій обробки (часто WASM-модуль), якщо він ще не завантажений, а потім передає йому файл через JavaScript. Сама обробка зазвичай виконується у фоновому потоці, який називається Web Worker, що дає змогу інтерфейсу браузера залишатися чуйним. Ви можете в будь-який момент відкрити вкладку «Мережа» у браузері: жоден запит із вашим файлом там не з'явиться. Результат збирається в пам'яті і пропонується вам для завантаження.

Чесні компроміси, про які варто знати

При першому використанні інструменту з великим WASM-рушієм браузер завантажує цей рушій і кешує його. При наступних використаннях завантаження пропускається, і інструмент працює повністю офлайн. Оскільки обробка виконується на вашому пристрої, дуже великий файл займе стільки часу, скільки дозволяють ваш процесор і оперативна пам'ять, і центр обробки даних упорався б із деякими важкими завданнями швидше. Але натомість ви отримуєте реальну цінність: файл ніколи не передається, немає очікування завантаження на повільних з'єднаннях, і інструмент продовжує працювати без інтернету після першого завантаження.

Інструменти з цієї статті

Поширені запитання

Клієнтська обробка автоматично означає конфіденційність даних?

Клієнтська означає, що файл за своєю природою не надсилається на сервер, саме це й забезпечує конфіденційність. Ви можете переконатися в цьому самостійно: відкрийте вкладку «Мережа» в інструментах розробника браузера під час обробки файлу, жоден вихідний запит не повинен містити дані вашого файлу. Тим не менш, розумно перевіряти, що конкретний інструмент справді так працює, а не просто довіряти позначці.

Чому при першому використанні інструмент іноді працює повільніше?

При першому використанні браузеру потрібно завантажити рушій обробки (WASM-модуль), що може зайняти кілька секунд залежно від його розміру та швидкості вашого з'єднання. Після цього рушій кешується локально, тому наступні сесії запускаються миттєво, і інструмент працює офлайн.