Nessun upload, 100% locale, nessun account

Articolo

Cos'è l'elaborazione client-side?

La maggior parte degli strumenti per file funziona inviando il documento a un computer remoto, che svolge il lavoro pesante e restituisce il risultato. L'elaborazione client-side ribalta questo schema: il tuo browser fa il lavoro e il file non lascia mai il tuo dispositivo.

Due modi in cui uno strumento può funzionare: il tuo computer o il loro

Con l'elaborazione server-side, caricare un file è un po' come portare i vestiti in lavanderia: li consegni, una macchina remota li gestisce e ritiri il risultato. L'elaborazione client-side è più simile al fare il bucato a casa. Lo strumento funziona nella scheda del browser, legge il file dalla memoria, lo elabora e ti restituisce il risultato, tutto senza che il file tocchi alcuna connessione di rete. Il sito web deve consegnare il codice di elaborazione una sola volta. Dopodiché funziona interamente dalla tua parte.

Cosa ha portato WebAssembly al browser

Per anni i browser potevano eseguire solo JavaScript, adatto per le interfacce ma troppo lento per compiti come la codifica di un video o la compressione di un'immagine di grandi dimensioni. WebAssembly (abbreviato in WASM) ha cambiato tutto. È un formato binario compatto che i browser possono eseguire a una velocità vicina a quella nativa, quindi codice scritto in C o C++ può essere compilato in WASM ed eseguito in una scheda del browser senza alcun plugin. Gli stessi codec e librerie di compressione che alimentano il software desktop ora girano direttamente nella pagina. JavaScript e WebAssembly lavorano insieme: JavaScript gestisce l'interfaccia e l'orchestrazione, mentre WASM si occupa dei calcoli intensivi.

Cosa succede davvero durante un'elaborazione

Quando trascini un file su uno strumento client-side, la pagina carica un piccolo motore di elaborazione (spesso un modulo WASM) se non lo ha già fatto, poi passa il tuo file attraverso JavaScript. L'elaborazione vera e propria di solito avviene su un thread in background chiamato Web Worker, che mantiene l'interfaccia del browser reattiva mentre il lavoro viene svolto. Puoi aprire la scheda Rete del browser in qualsiasi momento durante l'operazione e non comparirà nessuna richiesta contenente il tuo file. Il risultato viene assemblato in memoria e offerto come download.

I compromessi reali che devi conoscere

La prima volta che usi uno strumento che si basa su un motore WASM di grandi dimensioni, il browser lo scarica e lo memorizza nella cache. Gli usi successivi saltano il download e possono funzionare completamente offline. Poiché l'elaborazione avviene sul tuo dispositivo, un file molto grande impiegherà tanto tempo quanto lo permettono la tua CPU e la memoria disponibile, e un data center potrebbe completare alcuni compiti pesanti più in fretta. In cambio ottieni qualcosa di concreto: il tuo file non viene mai trasmesso, non c'è attesa per il caricamento su connessioni lente e lo strumento continua a funzionare senza internet dopo quel primo caricamento.

Strumenti citati in questo articolo

Domande frequenti

L'elaborazione client-side significa automaticamente che i miei dati sono privati?

Client-side significa che il file non viene inviato a un server per progetto, ed è questo che rende possibile la privacy. Puoi confermarlo tu stesso aprendo la scheda Rete negli strumenti per sviluppatori del browser mentre elabori un file: nessuna richiesta in uscita dovrebbe contenere i dati del tuo file. Detto questo, è sensato verificare che uno strumento si comporti davvero in questo modo invece di fidarsi solo dell'etichetta.

Perché il primo utilizzo di uno strumento è a volte più lento?

Il browser deve scaricare il motore di elaborazione (il modulo WASM) la prima volta che lo usi, operazione che può richiedere qualche secondo a seconda delle dimensioni e della connessione. Dopo, il motore viene memorizzato nella cache locale, quindi le sessioni successive partono immediatamente e lo strumento funziona offline.