Artikel
Wat is client-side verwerking?
De meeste bestandstools werken door je document naar een externe computer te sturen, die het zware werk doet en een resultaat terugstuurt. Client-side verwerking keert dat om: je eigen browser doet het werk, en je bestand verlaat nooit je apparaat.
Twee manieren waarop een tool kan werken: jouw machine of die van hen
Bij server-side verwerking is een bestand uploaden een beetje zoals was wegbrengen: je geeft het af, een externe machine verwerkt het en je haalt het resultaat later op. Client-side verwerking lijkt meer op thuis wassen. De tool draait in je browsertabblad, leest het bestand uit het geheugen, verwerkt het en geeft je de uitvoer, zonder dat het bestand een netwerkverbinding aanraakt. De website hoeft de verwerkingscode maar één keer te leveren. Daarna werkt alles volledig aan jouw kant.
Wat WebAssembly naar de browser bracht
Jaren lang konden browsers alleen JavaScript uitvoeren, wat prima is voor interfaces maar te traag voor taken zoals het hercoderen van een video of het comprimeren van een grote afbeelding. WebAssembly (doorgaans afgekort tot WASM) veranderde dat. Het is een compact binair formaat dat browsers bijna op native snelheid kunnen uitvoeren, zodat code die oorspronkelijk in C of C++ is geschreven, naar WASM kan worden gecompileerd en in een browsertabblad kan draaien zonder plugin. Dezelfde codecs en compressiebibliotheken die desktopsoftware aandrijven, draaien nu rechtstreeks in de pagina. JavaScript en WebAssembly werken samen: JavaScript verzorgt de interface en de orkestratie, terwijl WASM de berekeningen uitvoert.
Wat er werkelijk gebeurt tijdens een taak
Als je een bestand op een client-side tool sleept, laadt de pagina een kleine verwerkingsmotor (vaak een WASM-module) als dat nog niet is gebeurd, en geeft je bestand via JavaScript door. De feitelijke verwerking draait doorgaans op een achtergrondthread die een Web Worker wordt genoemd, zodat de browserinterface reageert terwijl het werk plaatsvindt. Je kunt op elk moment tijdens dit proces het Netwerk-tabblad van je browser openen, en er zal geen verzoek verschijnen dat je bestand bevat. De uitvoer wordt in het geheugen samengesteld en aangeboden als download.
Eerlijke afwegingen die je moet kennen
De eerste keer dat je een tool gebruikt die afhankelijk is van een grote WASM-engine, downloadt de browser die engine en slaat hem op in de cache. Latere sessies slaan de download over en kunnen volledig offline werken. Omdat de verwerking op je apparaat draait, duurt een zeer groot bestand zo lang als je CPU en beschikbaar geheugen toestaan, en een datacenter zou sommige zware taken sneller afhandelen. Wat je daarvoor terugkrijgt is echter reëel: je bestand wordt nooit verzonden, je hoeft niet te wachten op een upload bij trage verbindingen en de tool blijft werken zonder internet na die eerste keer.
Tools in dit artikel
- Afbeeldingen comprimeren Verklein de bestandsgrootte van afbeeldingen zonder uploaden. Kwaliteitsschuif of doelgrootte in KB. Batch ondersteund.
- Video comprimeren Verklein de videobestandsgrootte via H.264-hercodering in de browser. Geen upload, geen server.
- PDF-bestanden samenvoegen Voeg meerdere PDF-bestanden samen tot één, direct in je browser.
Veelgestelde vragen
Betekent client-side verwerking automatisch dat mijn gegevens privé zijn?
Client-side betekent dat het bestand door het ontwerp niet naar een server wordt gestuurd, wat de privacy mogelijk maakt. Je kunt het zelf bevestigen door het Netwerk-tabblad in de ontwikkelaarstools van je browser te openen terwijl je een bestand verwerkt: er mag geen uitgaand verzoek zijn dat de gegevens van je bestand bevat. Toch is het verstandig om te controleren of een tool zich echt zo gedraagt in plaats van het label op zijn woord te geloven.
Waarom is het eerste gebruik van een tool soms langzamer?
De browser moet de verwerkingsmotor (de WASM-module) de eerste keer downloaden, wat een paar seconden kan duren afhankelijk van de grootte en je verbinding. Daarna wordt de engine lokaal gecached, zodat latere sessies direct starten en de tool offline werkt.