[AJAX] [Scriptaculous] XMLhttprequest: Optimisation de l'utilisation
Bonjour,
Je souhaite réaliser un outil comparateur. Travaillant en PHP/Linux, aucune fonction actuelle ne semble me permettre de le faire. J’ai alors bien sûr penser à utiliser la fameuse fonction XMLhttprequest d’AJAX.
J’ai donc actuellement un code qui s’articule comme ceci :
1- Je lance une série de requêtes de la manière suivante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
<?Php
$parameters="Param1=$Param1&Param2=$Param2";
For ($x=1;$x<=count($TabProcess);$x++){
?>
<script type="text/javascript">
new Ajax_request('<?Php echo 'Operateur/'.$TabProcess[$x].'.php'; ?>',{
method:'get',
params:'<?Php echo $parameters; ?>',
onSuccess:MyMess,
async : true
});
</script>
<?Php
} |
2- Je récupère un DIV (MyMess) qui s’affiche dans ma page.
Deux constatations ( elles sont peut-être liés) :
- Il semble que le traitement ne soit pas réellement asynchrone. En effet quelque soit l’ordre d’origine de mon tableau $TabProcess les exécutions semblent bien être séquentielles.
- Le div est constitué de la concaténation des résultats précédent. Les images ne semble pas avoir le temps de se charger pour s’afficher. ( Il s’agit de petits logos en gif de 100 x 25 px issus d’une base locale)
Les logos ne s’affichent clairement que lorsque le dernier process est terminé.
Pour l’exécution de mon dev j’utilise la classe de "Rubik's" proposée sur la toile.
Question :
Est-ce que cette classe n’est pas tout à fait appropriée à ce que je veux faire ? ou bien dois-je l’utiliser autrement ? Avez-vous solutions autres ?
Merci pour vos réponses,
Intégrer une fonction de scriptaculous.js dans Ajax.Updater
Bonjour,
J'ai effectivement choisi de télécharger une classe de qualité.... "prototype.js". Je me sui rendu compte que la classe scriptaculous.js ainsi que sa bibliotheque, associé à prototype permettait d'ajouter des effets à l'affichage du Div.
1 - Comment faire pour intégrer un effet de la classe scriptaculous dans ma requête Ajax.Updater
Voici ma requête:
<?Php
For ($x=1;$x<=count($Tb);$x++){
?>
<script language="JavaScript" >
var parametres = 'info1=1&info2=2';
var url = 'Operateur/<?Php echo $Tb[$x]? >.php';
var myAjax = new Ajax.Updater('TravelMess',url,{method: 'get',parameters: parametres});
</script>
<?Php } ?>
comment faire pour rajouter : Effect.Fade('TravelMess'); ?
2 - d-Rek m'a été déconseillé de faire une boucle en php pour lancer mes requêtes successives. Il suggére d'utiliser JSON pour envoyer un tableau en une seule action XmlHttpRequest.
(Mon tableau contient au maximum 10 requêtes).
Quelqu'un sait comment cela s'utilise? y a-t-il un autre solution?
Merci de vos réponses,