Bonsoir,
Je rapporte un problème connu autour de l'utilisation des images et de SPIP et je vais essayer de proposer une piste pour une solution.
Après avoir réalisé quelques sites en SPIP. Je me trouve devant un problème récurant qui est celui de la manipulation des images en grand nombre.
Un exemple vaut mieux que de long discours.
Je crée un article en SPIP. J'y attache 40 images en jpg. Lors de mon affichage sur mon site public je souhaite les retailler, j'ai envie de rajouter un filtre de couleur par dessus.
Le comportement du moteur de SPIP lors de l'interprétation de mon squelette va être celui ci.
1) Je rencontre la boucle documents et je sélectionne tous les images de l'article passé en paramètre.
2) A chaque image, je vais générer une miniature avec les critères passés en paramètre.
3) Une fois tous ces images retouchées, le moteur va fournir au navigateur le résultat de la page.
Le ralentissement des pages voir le blocage, se fait systématiquement entre l'étape 2 et 3. En effet le moteur SPIP en plus de générer du html doit créer les miniatures en php ce qui est très couteux.
Si je prends le problème en partant de l'idée que ce n'est pas au cours de l'exécution de la page artcile que je dois générer mes images mais lorsque le navigateur les appelle.
La balise img générer par SPIP pourrait fournir une quelque chose de ce type là.
<img src="spip.php?page=image&filtre=image_reduire{50}|image_alpha{50}&id_document=13" />
Maintenant le moteur SPIP peut fournir par le billet du lien une fichier générer avec dans son header, un jpg. Ce système peut s'appuyer sur le cache évidement.
Un seul inconvénient à ce système, c'est le moteur SPIP doit tester l'existence du fichier générer à chaque fois que l'image est désormais générer.
Une idée serait que lors de la génération de la page article, on ne teste que l'existence de la miniature. Si la miniature n'existe pas alors on fournit au navigateur l'url de génération d'image. Sinon on fournit directement l'url du fichier.
Je ne sais pas si je suis clair dans la présentation de mon problème et de sa solution. Mais si cela peut contribuer à amener un début de solution.
Actuellement un artifice peut être générer en AJAX, mais en terme d'accessibilité ce n'est pas super
Sébastien