Salut
Le code et les optimisations que tu as vu sur calendar.perfplanet sont des optimisations faites par Facebook eux même (via Stoyan, l'auteur du post et embauché à l'époque récent de Facebook). Ce n'est donc pas un plugin mais des modifications faites dans le code.
Tu as bien raison de t'inquiéter des contre-performances de tous ces boutons, en particulier du bouton G+.
Personnellement j'ai du optimiser ce dernier car il prenait beaucoup de CPU sur IE 7. Pourquoi ? après un coup de profiling, je me suis rendu compte qu'il scannait tout le DOM pour trouver les instances du bouton. Sur une page lourde et avant document.querySelector (IE 8+), c'est fatal. Donc je suis allé trouver dans leur API une option qui permet de cibler précisément un élément, le problème a donc été résolu.
Les problèmes de performance posés par un bouton Twitter par exemple (blocage du navigateur tant que Twitter n'a pas répondu) peuvent être résolus manuellement en chargeant de manière asynchrone leur plugin.
Globalement les recommandations :
- si tu veux optimiser vite fait, au minimum contrôle le moment où l'injection du bouton se fait. Après le body.onload idéalement, 1-2 secondes après document.ready par exemple. De cette manière tu passes de fait en asynchrone, et tu déplaces le problème à un moment où le navigateur de l'utilisateur est un peu plus disponible
- si tu as un peu de temps, explore bien toutes les options des APIs déjà proposées par les créateurs des boutons. L'option "par défaut" est généralement la plus facile à mettre en place, au prix des performances
- si tu veux d'excellentes perfs et que les fonctionnalités sont négociables, mets simplement des liens vers les pages qui enregistrent le partage …