Lucille Bluth de la série Arrested Development. L’air dédaigneux, une tasse de café à la main.

C’est juste une page web. Combien est-ce que ça peut peser ? 10 Mo ?

Il y a une scène dans la série Arrested Development où la matriarche de la famille, Lucille Bluth, reproche à son fils d’avoir refusé d’offrir gracieusement un jus de banane à son frère. S’en suit la réplique devenue meme : « C’est juste une banane, Michael. Qu’est-ce que ça coûte ? 10 $ ? » Michael répond alors : « Tu n’as jamais mis les pieds dans un supermarché, avoue ? », déconcerté par la déconnexion totale de sa mère avec le monde réel.

J’ai cette réplique en tête ces derniers temps à chaque fois que je visite une page web qui fait des dizaines de Mo. En février dernier, le développeur Nikita Prokopov illustrait tout ça parfaitement dans un article intitulé « JavaScript Bloat in 2024 ».

Parfois les sites web sont tellement bêtement lourds qu’il méritent leur propre catégorie. Voici Jira, une logiciel de gestion de taches. Presque 50 Mo ! Est-ce qu’ils envoient l’entièreté d’Electron compilé en WASM ou bien ?

Mais ce n’est pas le pire ! Slack ajoute 5 Mo de plus, jusqu’à 55 Mo. Oui, c’est un chat. Vous savez, des listes d’utilisateurices, des réactions. Des trucs qu’on faisait en HTML brut, bien avant que JavaScript ne soit inventé. C’est 55 Mo dans notre monde d’aujourd’hui. C’est comme si ils essayaient de voir quelle quantité de bousin ils pouvaient mettre dans un navigateur avant que ça ne casse.

Pour terminer, celui-ci m’a époustouflé. D’une manière ou d’une autre, react.dev démarre avec un modeste 2 Mo mais alors que vous défilez la page en avant ou en arrière, ça grossit indéfiniment. Juste pour m’amuser, j’ai réussi à aller jusque 100 Mo (de JavaScript !), mais vous pouvez aller aussi loin que vous le souhaitez. Qu’est-ce qui se passe ici ? Même si ça charge et décharge du contenu de cet article, comment ça peut monter aussi rapidement ? Le texte en lui même ne fait probablement que 50 Ko (0,05 Mo).

Il y a quelques mois, je suis tombé sur ce poème de Vinay Krishan sur Twitter : « there’s laundry to do and a genocide to stop ». L’auteur a publié son écrit sous la forme d’une capture d’écran sur Twitter. Cela donne une image de 162 Ko dans une page de 2,3 Mo.

Alors j’ai repris le texte du poème. J’en ai fait une page HTML. J’ai ajouté quelques styles pour respecter la mise en forme originelle. Et le tout pèse 2 Ko. Deux. Kilo. Octets. Deux tout petits Kilo-octets. J’ai divisé par plus de 1000 le poids de la page initiale. Et ça, sans même vraiment chercher à faire de l’optimisation ou la moindre partie de golf.

Alors voilà. À la question « Combien est-ce que ça peut peser [une page web] ? », la réponse est 2 Ko. Ou 100 Mo. Et à nous trouver le juste milieu.