Bon, histoire de pas mourir idiot, je re-teste facebook à l'occasion de leur redesign... Je lance le truc de récupération de password pour retrouver mon vieux compte que j'ai utilisé 5 minutes ya 67 mois, et la, je vois mon Firefox qui s'excite à transférer une tonne de trucs depuis login.facebook.com ... Et pour cause! Voila un petit bout de la source:
<link type="text/css" rel="stylesheet" href="/rsrc.php/106234/css/login.css" /> <link type="text/css" rel="stylesheet" href="/rsrc.php/106650/css/editor.css" /> <link type="text/css" rel="stylesheet" href="/rsrc.php/39930/css/dialog.css" /> <link type="text/css" rel="stylesheet" href="/rsrc.php/104778/css/dialogpro.css" /> <link type="text/css" rel="stylesheet" href="/rsrc.php/111255/css/base.css" /> <link type="text/css" rel="stylesheet" href="/rsrc.php/108104/css/ubersearch.css" /> <link type="text/css" rel="stylesheet" href="/rsrc.php/102900/css/typeaheadpro.css" /> <link type="text/css" rel="stylesheet" href="/rsrc.php/106898/css/intl.css" /> <script type="text/javascript" src="/rsrc.php/106267/js/lib/util/bootloader.js"></script> <script type="text/javascript" src="/rsrc.php/83911/js/lib/ua/ua.js"></script> <script type="text/javascript" src="/rsrc.php/103533/js/lib/type/string.js"></script> <script type="text/javascript" src="/rsrc.php/100038/js/lib/string/escape.js"></script> <script type="text/javascript" src="/rsrc.php/94393/js/lib/string/sprintf.js"></script> <script type="text/javascript" src="/rsrc.php/104485/js/lib/util/util.js"></script> <script type="text/javascript" src="/rsrc.php/100890/js/lib/event/extensions.js"></script> <script type="text/javascript" src="/rsrc.php/102557/js/lib/event/onload.js"></script> <script type="text/javascript" src="/rsrc.php/83911/js/lib/ua/adjust.js"></script> <script type="text/javascript" src="/rsrc.php/107392/js/lib/prelude.js"></script> <script type="text/javascript" src="/rsrc.php/109129/js/lib/type/array.js"></script> <script type="text/javascript" src="/rsrc.php/101636/js/lib/type/object.js"></script> <script type="text/javascript" src="/rsrc.php/103541/js/lib/type/function.js"></script> <script type="text/javascript" src="/rsrc.php/102585/js/lib/event/link_controller.js"></script> <script type="text/javascript" src="/rsrc.php/98848/js/lib/ua/cookie.js"></script> <script type="text/javascript" src="/rsrc.php/95536/js/lib/string/misc.js"></script> <script type="text/javascript" src="/rsrc.php/104760/js/lib/string/uri.js"></script> <script type="text/javascript" src="/rsrc.php/108234/js/lib/math/vector.js"></script> <script type="text/javascript" src="/rsrc.php/108234/js/lib/math/rect.js"></script> <script type="text/javascript" src="/rsrc.php/86410/js/lib/math/extensions.js"></script> <script type="text/javascript" src="/rsrc.php/83874/js/lib/dom/html.js"></script> <script type="text/javascript" src="/rsrc.php/107299/js/lib/dom/misc.js"></script> <script type="text/javascript" src="/rsrc.php/109548/js/lib/dom/dom.js"></script> <script type="text/javascript" src="/rsrc.php/83478/js/lib/dom/control.js"></script> <script type="text/javascript" src="/rsrc.php/103430/js/lib/dom/controls/text_input.js"></script> <script type="text/javascript" src="/rsrc.php/107265/js/lib/dom/controls/text_area.js"></script> <script type="text/javascript" src="/rsrc.php/93653/js/lib/dom/css.js"></script> <script type="text/javascript" src="/rsrc.php/109886/js/base.js"></script> <script type="text/javascript" src="/rsrc.php/103539/js/lib/dom/form.js"></script> <script type="text/javascript" src="/rsrc.php/109886/js/lib/net/async.js"></script> <script type="text/javascript" src="/rsrc.php/84002/js/lib/net/async_signal.js"></script> <script type="text/javascript" src="/rsrc.php/106898/js/intl.js"></script> <script type="text/javascript" src="/rsrc.php/101805/js/lib/ui/animation.js"></script> <script type="text/javascript" src="/rsrc.php/107632/js/dialogpro.js"></script> <script type="text/javascript" src="/rsrc.php/106392/js/key_event_controller.js"></script> <script type="text/javascript" src="/rsrc.php/111979/js/lib/ui/dialog.js"></script> <script type="text/javascript" src="/rsrc.php/101899/js/error_data.js"></script> <script type="text/javascript" src="/rsrc.php/86410/js/support/json.js"></script>
Soit 46 requêtes HTTP, et sur le même domaine! En voila certains qui devraient bosser à telefun ou lire un peu des articles sur les performances web... Je peux même leur filer l'URL de ma co-présentation à Paris-Web 2007...
Edit: Ah, et en fait, sans JavaScript... page blanche. Super!
Commentaires
T'as triché, mais t'as tout de même réussi à faire un billet de plus de 150px de hauteur
Je suis étonné que tout les modules des librairies JS soient tous chargé d'un coup plutôt que de charger à la demande.
Et puis il n'y a rien de compressé, quelle folie pour un site qui a 80 millions de membres !
Bref, le directeur technique a des questions à se poser...
En fait, c'est compressé. Par contre:
- Yen a une tonne de chargés
- Dans le <head>, donc c'est bloquant pour le client
- Sur le même domaine (donc c'est d'autant plus lent, les navigateurs ne chargent que x trucs en même temps par domaine)
- Et pour finir, certains sont énormes, et j'ai ca dès la page de login
Comme c'est dit dans un commentaire d'un de tes liens, il vaut mieux que ce soit dès la page de login plutôt qu'après, le client s'attend à un ralentissement à ce moment là et moins par la suite.
Je remarque que mon frère (mais je ne doute pas que ce soit lui) ne sait pas écrire son prénom.
Il faut savoir qu'il a eu une très mauvaise mère, une militante farouche contre la cédille, ce qui a eu sur lui une très mauvaise influence.
C'est toujours par peur qu'un mauvais encodage vienne gâcher mon beau prénom (en revanche, j'ai rien contre les accents).
Aller, une autre excuse : si mon prénom était souligné, la cédille serait coupée, et ce serait dommage.
Aller, une autre : je suis feignant (demi-excuse puisque le c cédille (non, je l'écrirais pas) est plus proche du o que le c).
Je reviens, je vais prendre ma dose de Monk.
En fait, si on regarde l'autre page, ya encore une autre tonne de trucs
Et de toutes facons, 46 élements externes, quelque soit la page, c'est un scandale pour tout site web digne de ce nom...
PS: je suis pas le seul à en parler, lui a fait un test plus poussé: nerdlife.net/2008/07/22/f...
Oui c'est un scandale, mais c'est le prix à payer pour avoir des amis... ou peut-être non
"il a eu une très mauvaise mère, une militante farouche contre la cédille" Et elle a raison. La cédille n'est qu'une pâle imitation de la faucille, un genre d'appendice qui se voudrait supérieure sous prétexte qu'elle peut transformer un son. Mais c'est du pipeau. On n'a pas besoin d'elle pour susurrer, siffler, seriner et santer.
Je n'ose imaginer le nombre de machines derrière...car le site s'affiche "plutôt" vite et il y a certainement beaucoup de visiteurs...
Je proteste!
Je suis prête à parier que si je m'ouvrai un compte FB, je croulerai sous les requêtes... Sauf que si je faisai ça, personne le saurai: j'aurai trop honte d'avoir un compte, du coup personne me calculerai...
Ravaillac, tu as entièrement raison. Et ça coupe à peine tes cédilles le soulignage... (J'avoue, j'avais juste très envie de tester)
Pour en revenir au sujet, je suppose que tous ces js sont liés aux plugins. Si ils sont hébergés sur des machines physiques distinctes, (disons une machine par plugin) est-ce que ça (hum...) accélère l'affichage ?
plugins dès la page de password? non, c'est juste naze

Ca irait plus vite si ils suivaient les conseils de base que je donne dans un commentaire plus haut. Parait que c'est le cas pour la nouvelle version, mais qu'ils ont rajouté encore plus de scripts et que du coup ca se voit pas
bon françois, quand c'est que tu fais job@skyrock?
ker : Hmm je sais pas... Si je peux utiliser la plateforme pour attirer des petites filles innocentes, je signe tout de suite !
mat : Et si la gestion de login était elle aussi gérée par un plugin hein ? Haha ça t'la coupe !
Excellent !