Was ein kostenloses Tool lädt, bevor du etwas anklickst | nopa

Was ein Tool lädt, bevor du etwas anklickst

Unser Hintergrund-Entferner schickte 1386 KB JavaScript auf dein Handy, bevor du überhaupt ein Foto ausgewählt hattest. Niemand hatte danach gefragt, und nichts auf dem Bildschirm brauchte es. Hier steht, wie es dorthin kam, worauf wir es gebracht haben und wie du jedes Tool in dreißig Sekunden selbst misst.

Die Zahl, die niemand veröffentlicht

Ihre Funktionsliste veröffentlicht jede Tool-Seite. Was die Seite wiegt, bevor man sie benutzt, fast keine. Genau diese Zahl entscheidet aber, wie sich ein Tool anfühlt: Auf dem Handy im normalen Mobilfunknetz ist jede Portion von rund 400 KB JavaScript eine weitere Sekunde, in der man auf eine Seite schaut, die fertig aussieht und es nicht ist.

Für uns zählt das mehr als für andere. nopa arbeitet auf deinem Gerät — Zusammenfügen, Komprimieren, Transkribieren passiert im Browser, hochgeladen wird nichts. Die Kehrseite dieses Versprechens: Der Code muss erst ankommen. Der Download ist kein Beiwerk um das Produkt herum. Er ist das Produkt bei seiner Ankunft.

Wie wir gemessen haben

Ein Skript in unserem Repository öffnet jede Route in einem echten Chromium, mit leerem Cache und abgeschaltetem Service Worker, und addiert die übertragenen Bytes aller Skripte, die die Seite vor jeder Interaktion anfordert. Nicht die entpackte Größe, nicht den Bundle-Report — die Bytes auf der Leitung, denn die bezahlt deine Verbindung.

Wir haben das über die ganze Seite laufen lassen: Startseite, Katalog und Hubs, jede Tool-Seite. Sieben Routen kamen mit über einem Megabyte zurück.

Was wir im eigenen Code gefunden haben

Die Spalte „vorher“ ist das, was wir ausgeliefert haben. Die Spalte „nachher“ ist dieselbe Seite heute — ohne dass eine einzige Funktion entfernt wurde.

SeiteVorherNachher
Hintergrund entfernen1386 KB405 KB
Emoji1318 KB740 KB
Transkription940 KB402 KB
Datei-Konverter845 KB403 KB
Reader839 KB427 KB
Startseite325 KB28 KB
Katalog und Hubs318 KB21 KB

Es liegt nie an der Funktion. Es liegt am Import.

Keine dieser Seiten war schwer wegen dem, was sie tut. Jedes Mal war es eine einzelne Zeile am Anfang einer Datei, die etwas hereinzog, das die Seite nie ausführen würde.

  • Eine Prüfung „ist das KI-Modell schon geladen?“ zog die komplette Machine-Learning-Runtime — 539 KB — auf Seiten, die nie ein Modell laden. Sie liest den Browser-Cache jetzt direkt, in neun Zeilen.
  • Ein Zip-Helfer war oben in der PDF-Engine importiert, also lud jede Seite, die irgendetwas packte, zusätzlich 443 KB PDF-Code. Ihn erst beim Benutzen zu laden hat vier Tool-Seiten halbiert.
  • Die Emoji-Auswahl lieferte ihre Stichworttabelle — die Hälfte des Datensatzes — vor dem ersten Tastendruck aus. Jetzt kommt sie mit der ersten Suche, also genau dann, wenn sie überhaupt jemand liest.
  • Eine ganze Animationsbibliothek wurde für ein einziges Panel geladen, das auf Handys hochfährt. Der Browser hat eine eingebaute Animations-API; die Bibliothek ist raus.
  • Ein 373 KB großer Katalogindex wurde auf jeder Seite geladen, um eine Zeile mit Links zu verwandten Tools zu zeichnen.

Warum hier keine Zahlen der Konkurrenz stehen

Wir wollten andere Tools in diese Tabelle setzen. Ehrlich ging das nicht. Der erste Versuch lud die Seiten der Konkurrenz und zählte die Skripte im HTML; heraus kam, dass eine bekannte PDF-Suite 2 KB JavaScript ausliefert — weil die eigentliche Anwendung vom JavaScript nachgeladen wird und nicht in der Seite steht. Eine Zahl, die wir nicht reproduzieren können, ist schlechter als gar keine, und ein Vergleich, in dem wir uns selbst benoten, ist kein Vergleich.

Deshalb stehen in der Tabelle nur eigene Seiten. Und statt Zahlen, die du uns glauben müsstest, hier die Methode.

Jedes Tool in dreißig Sekunden messen

Funktioniert auf jeder Seite, auch auf unserer. Wenn unsere Zahlen nicht stimmen, erwischst du uns so.

  • Tool im Desktop-Browser öffnen, Entwicklertools starten (F12), Reiter „Network“.
  • „Disable cache“ anhaken, auf JS filtern, Seite neu laden.
  • Unten die Summe „transferred“ ablesen, bevor du irgendetwas anklickst. Das ist der Download, den du bei jedem kalten Besuch bezahlst.
  • Für das Local-First-Versprechen: Seite laden, dann das Netzwerk auf offline stellen und die Aufgabe ausführen. Klappt sie, rechnet dein Gerät. Klappt sie nicht, war deine Datei unterwegs.

Worauf wir uns jetzt festgelegt haben

Jede Route hat eine harte Obergrenze von 600 KB JavaScript, und das Skript, das sie misst, schlägt laut fehl, sobald eine Seite darüber liegt. Genau das verhindert die Wiederholung: Die vier Korrekturen oben haben einen Tag gekostet — nötig waren sie monatelang, nur weil niemand gezählt hat.

Die Tools sind da, wenn du sie brauchst, und keines verlangt eine Anmeldung dafür, dass du erfährst, wie schwer es ist.