@JVAvatar: T'as pas du comprendre ce que je voulais dire alors
Enfin je suis mieux ta logique depuis que t'as rajouté le timeout en fonction du cache ou pas, mais dans l'absolu c'est inutile de systématiquement faire une requête sur la CDV si tu l'as déjà en cache.
Pour l'instant ton cache te permet juste d'afficher les images présentes dans le cache plus rapidement, mais tu rafraîchis le cache à chaque chargement de page, donc l'utilité est vraiment limitée.
Tu devrais gérer une durée de vie du cache (pour chaque pseudo), et tant que la durée de vie n'est pas dépassée tu ne fais pas d'appel AJAX à la CDV. Ça évitera de surcharger le navigateur en requêtes (sur une page de forum, tu fais 20 requêtes AJAX simultanées, si tu charge uniquement les profils qui ne sont pas présents dans le cache ou ceux dont le cache est périmé, ça allégera pas mal le chargement), d'autant plus que les avatars non présents dans le cache seront chargés plus rapidement donc ça limite l'effet de "clipping".
Puis quand à faire de l'optimisation, lorsque le cache de certains pseudos est périmés, tu le rafraîchit un peu après le chargement de la page, ça fait que ceux dont on a pas l'image seront chargés en priorité, et seulement ensuite on met à jour ceux dont le cache est périmé.
Quoi qu'il en soit chaque userscript fait ses requêtes bien de son côté, et fait son cache de son côté, au final dès qu'on a plusieurs scripts ça devient vite relou... si le besoin se fait ressentir faudra un jour faire une API userscripts pour JVC qui permettra de mettre ce genre de ressources en commun à tous les scripts, mais qui laisserait libre à chaque dev d'implémenter les fonctionnalités qu'il se veut en s'appuyant sur une base commune.