|
|
|
|
Bonjour,
J'ai fait un petit site web entièrement en AJAX, avec le plugin jquery.
Une page principale, comportant plusieurs boutons.... Au click de l'un de ses boutons, ça lance une fonction js qui appelle telle ou telle page en fonction du click.
En fait sur mon localhost ça marche parfaitement, aucuns problèmes. Le plus gros des fichiers susceptibles d'être appelé fait au maximum une quinzaine de ko.... Mais une fois hebergé, ça dépends de la bande passante disponible...
Des fois la réponse est instantannée.... Des fois pas.... Donc l'animation est bien lancée, mais le contenu n'apparaît que quelques secondes après.... Au pire ce n'est pas grave, le problème étant que l'utilisateur peut être incité à clicker plusieurs fois sur le bouton, ou même un autre... Et là c'est le drame, plusieurs contenu apparaissent d'un coup (du style deux fois le même, voir plus...)....
Comment remédier à ce problème?
Merci par avance :-)
Configuration: Windows XP Internet Explorer 7.0
Bonjour Papymucho,
|
Merci de ta réponse Marco,
function load_page(element,page,id) //Fonction ajax, qui va appeler le bon fichier pour effectuer les requêtes de chargement du contenu. On check le fichier demandé (un smenu ou un body), quelle page et on lui envoie un id pour les requêtes.
{
$("#"+element).empty();
var path = "php/"+element;
$.ajax
(
{
type: "POST",
url: path+"/"+element+"_"+page+".php", //chemin du fichier/nom du fichier (composé de "body+nom" ou "smenu+nom").php
data: "page="+page+"&id="+id,
success:
function(msg)
{
$("#"+element).append(msg);
}
}
);
}
Comme expliqué dans ma question, j'utilise le plugin jquery. Pour expliquer vite fait cette fonction, certaines pages de mon site ont un sous-menu, d'autres non.... Si quand on click sur un bouton, on doit un charger un sous menu, la variable element prends la valeur smenu.... Donc la fonction ajax charge le fichier demandé, et l'injecte dans un div appelé "smenu". De même pour si l'on demande une page directement, la variable element prendra la valeur body, et la fonction ajax réécrira le div ayant pour identifiant "body". A chaque fois qu'un click est effectué, l'ancien conteneur (div body ou div smenu) est vidé. Donc comment faire pour bloquer l'utilisateur, ou vérifié si le conteneur est vide ou non.... (en fait j'ai l'impression de répondre à ma question tout à coup lol....) avant de réécrire dedans.
|
Function(msg)
|
Répondre à papymucho
|
Je vais tester avec une connexion bas débit, et lorsque l'hébergeur sera le plus sollicité. J'ai quand même essayé plusieurs fois depuis, impeccable... on voit bien l'ancien contenu disparaitre et le nouveau s'afficher instantanément (une demi fraction de seconde) alors que les contenus se seraient superposés auparavant pour les mêmes situations.
|