Ce qu’un outil gratuit télécharge avant le moindre clic | nopa

Ce qu’un outil télécharge avant que vous ne cliquiez

Notre détoureur envoyait 1386 Ko de JavaScript sur votre téléphone avant même que vous n’ayez choisi une photo. Personne ne les avait demandés et rien à l’écran n’en avait besoin. Voici comment ils sont arrivés là, à combien nous les avons ramenés, et comment mesurer n’importe quel outil en trente secondes.

Le chiffre que personne ne publie

Tous les sites d’outils publient leur liste de fonctions. Presque aucun ne publie ce que pèse la page avant qu’on s’en serve. C’est pourtant ce chiffre qui décide de la sensation : sur un téléphone en connexion mobile normale, chaque tranche de 400 Ko de JavaScript, c’est une seconde de plus à regarder une page qui a l’air prête et ne l’est pas.

Chez nous, ça compte plus qu’ailleurs. nopa tourne sur votre appareil — fusionner, compresser, transcrire se passe dans le navigateur, rien n’est envoyé. Le revers de cette promesse, c’est que le code doit arriver d’abord. Le téléchargement n’est pas un coût autour du produit : c’est le produit qui arrive.

Comment nous avons mesuré

Un script de notre dépôt ouvre chaque route dans un vrai Chromium, cache vide et service worker désactivé, et additionne les octets transférés de tous les scripts que la page réclame avant la moindre interaction. Pas la taille décompressée, pas le rapport du bundler : les octets sur le réseau, ceux que votre connexion paie vraiment.

Nous l’avons passé sur tout le site : accueil, catalogue et hubs, chaque page d’outil. Sept routes sont revenues au-dessus du mégaoctet.

Ce que nous avons trouvé dans notre propre code

La colonne « avant », c’est ce que nous livrions. La colonne « après », c’est la même page aujourd’hui, sans qu’une seule fonction ait été retirée.

PageAvantAprès
Détourage1386 Ko405 Ko
Emoji1318 Ko740 Ko
Transcription940 Ko402 Ko
Convertisseur de fichiers845 Ko403 Ko
Lecteur839 Ko427 Ko
Accueil325 Ko28 Ko
Catalogue et hubs318 Ko21 Ko

Ce n’est jamais la fonction. C’est l’import.

Aucune de ces pages n’était lourde à cause de ce qu’elle fait. À chaque fois, c’était une seule ligne en haut d’un fichier, qui tirait quelque chose que la page n’exécuterait jamais.

  • Une vérification « le modèle d’IA est-il déjà téléchargé ? » entraînait tout le moteur d’apprentissage automatique — 539 Ko — sur des pages qui ne chargent jamais de modèle. Elle lit désormais le cache du navigateur directement, en neuf lignes.
  • Un utilitaire zip était importé en tête du moteur PDF : toute page qui compressait quoi que ce soit téléchargeait aussi 443 Ko de code PDF. Le charger au moment de s’en servir a divisé par deux quatre pages d’outils.
  • Le sélecteur d’emoji livrait sa table de mots-clés — la moitié du jeu de données — avant la première frappe. Elle arrive maintenant avec votre première recherche, le seul moment où on la lit.
  • Toute une bibliothèque d’animation se chargeait pour un seul panneau qui remonte sur mobile. Le navigateur a une API d’animation intégrée ; la bibliothèque est partie.
  • Un index de catalogue de 373 Ko se chargeait sur chaque page pour afficher une rangée de liens « outils proches ».

Pourquoi il n’y a pas de chiffres concurrents ici

Nous voulions mettre d’autres outils dans ce tableau. Impossible de le faire honnêtement. Notre première tentative téléchargeait leurs pages et comptait les scripts du HTML ; résultat, une suite PDF très connue livrerait 2 Ko de JavaScript — parce que l’application réelle est chargée par le JavaScript et non écrite dans la page. Un chiffre que nous ne pouvons pas reproduire vaut moins que pas de chiffre, et un comparatif où nous nous notons nous-mêmes n’est pas un comparatif.

Le tableau ne contient donc que nos pages. Et au lieu de chiffres à croire sur parole, voici la méthode.

Mesurer n’importe quel outil en trente secondes

Ça marche sur n’importe quel site, y compris le nôtre. Si nos chiffres sont faux, c’est comme ça que vous nous prendrez en défaut.

  • Ouvrez l’outil dans un navigateur de bureau, puis les outils de développement (F12), onglet Network.
  • Cochez « Disable cache », filtrez sur JS et rechargez la page.
  • Lisez le total transferred en bas avant de cliquer sur quoi que ce soit. C’est le téléchargement que vous payez à chaque visite à froid.
  • Pour la promesse du traitement local : une fois la page chargée, passez le réseau hors ligne et lancez votre tâche. Si elle aboutit, le travail se fait sur votre appareil. Si elle échoue, votre fichier partait quelque part.

Ce que nous nous imposons désormais

Chaque route a un plafond strict de 600 Ko de JavaScript, et le script qui le mesure échoue bruyamment dès qu’une page dépasse. C’est ce qui empêche le retour du problème : les quatre correctifs ci-dessus ont pris une journée, et s’ils ont été nécessaires pendant des mois, c’est uniquement parce que personne ne comptait.

Les outils sont là quand vous en avez besoin, et aucun ne vous demandera de créer un compte pour savoir ce qu’il pèse.