Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > Mootools
Mootools Forum d'entraide sur le framework MooTools. Avant de poster : Tutoriels Mootools, FAQ MooTools, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/01/2008, 09h58   #1
Nouveau Membre du Club
 
Inscription : mars 2003
Messages : 31
Détails du profil
Informations personnelles :
Localisation : France, Haute Vienne (Limousin)

Informations forums :
Inscription : mars 2003
Messages : 31
Points : 26
Points : 26
Par défaut [Mootools] Multiples requêtes Ajax et performances

Bonjour,

Je vais simplifier à l'extrême le problème que je rencontre. Je développe actuellement une sorte d'explorateur d'images en PHP / Ajax, et la sélection multiple d'images est possible.

Avec des images sélectionnées, il est possible de les redimensionner ou de créer des vignettes. Pour cela, je clique sur un bouton qui appelle une requête Ajax.

Si par exemple j'ai 20 images sélectionnées, quelle est la meilleure solution en termes d'optimisation / performance ?
- Appeler 20 requêtes Ajax vers un script PHP qui redimensionne une à une les images ;
- Ou appeler une seule requête Ajax (avec en argument la liste des 20 identifiants d'image) vers un script PHP, avec boucle for à l'intérieur de celui-ci.

J'utilise Mootools comme framework Ajax.

Merci
ALkyD est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2008, 10h20   #2
Responsable Modération
 
Homme
Inscription : janvier 2007
Messages : 9 315
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : janvier 2007
Messages : 9 315
Points : 15 609
Points : 15 609
Bonjour,
en terme de temps d'exécution, ça sera (presque) sûrement la 1° solution.
Ceci dit, pas sûr que la différence soit perceptible ...
Par contre, la 2° te permettrait de mettre en plus facilement un indicateur de progression (style "1/20 traitée" puis "2/20 traitées" etc.), et de mettre à jour l'affichage au fur et à mesure. Justifié si le traitement de chaque image laisse le temps de la mise à jour (> 1 seconde ?)

A+
E.Bzz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2008, 11h01   #3
Nouveau Membre du Club
 
Inscription : mars 2003
Messages : 31
Détails du profil
Informations personnelles :
Localisation : France, Haute Vienne (Limousin)

Informations forums :
Inscription : mars 2003
Messages : 31
Points : 26
Points : 26
Salut,
Ce n'est pas la 2ème mais la première solution qui permet de mettre à jour en temps réel les images : une fois la requête X finie, l'image X est modifiée dynamiquement dans l'explorateur. Tandis que dans la deuxième solution, on est obligé d'attendre la fin de la grosse requête Ajax pour mettre à jour en même temps les 20 images. Mais dans la première, on doit recharger à chaque requête les librairies et code de base nécessaire, tandis que dans la deuxième, on charge les librairies une bonne fois pour toutes.

J'avoue que je ne sais pas trop quelle méthode utiliser, sachant que le traitement de redimensionnement pourrait être long (cas des photos lourdes). D'un côté, balancer 20 requêtes HTTP (voire plus, si on sélectionne par exemple 30 images) au serveur ne risque-t-il pas de le faire souffrir ? Et de l'autre côté, attendre une requête de 30 seconde ne risque-t-il pas de freezer la page ?
ALkyD est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2008, 11h11   #4
Responsable Modération
 
Homme
Inscription : janvier 2007
Messages : 9 315
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : janvier 2007
Messages : 9 315
Points : 15 609
Points : 15 609
Citation:
Envoyé par KyD Voir le message
Ce n'est pas la 2ème mais la première solution qui permet de mettre à jour en temps réel les images : une fois la requête X finie, l'image X est modifiée dynamiquement dans l'explorateur. Tandis que dans la deuxième solution, on est obligé d'attendre la fin de la grosse requête Ajax pour mettre à jour en même temps les 20 images.
Oui excuse moi : j'ai inversé.
Correction :
Citation:
en terme de temps d'exécution, ça sera (presque) sûrement la 2° solution.
Ceci dit, pas sûr que la différence soit perceptible ...
Par contre, la 1° te permettrait de mettre en plus facilement un indicateur de progression (style "1/20 traitée" puis "2/20 traitées" etc.), et de mettre à jour l'affichage au fur et à mesure. Justifié si le traitement de chaque image laisse le temps de la mise à jour (> 1 seconde ?)

Citation:
D'un côté, balancer 20 requêtes HTTP (voire plus, si on sélectionne par exemple 30 images) au serveur ne risque-t-il pas de le faire souffrir ?
Pour les N rechargements nécessaires au lieu d'un, oui.
Citation:
Et de l'autre côté, attendre une requête de 30 seconde ne risque-t-il pas de freezer la page ?
Non, si tu fais l'appel en asynchrone.
De plus, tu peux quand même gérer une progression, mais c'est plus lourd : mise en place d'une 2° requête Ajax d' "observation" : elle interroge le serveur à fréquence élevée pour récupérer l'état d'avancement (en BDD). Une table peut être mise à jour par le traitement d'images au fur et à mesure de son avancement. C'est cette table que la 2° requete interrogerait pour renseigner l'utilisateur.

A+
E.Bzz est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h53.


 
 
 
 
Partenaires

Hébergement Web