blowlagoon
Messages postés38Date d'inscriptionmardi 7 janvier 2003StatutMembreDernière intervention26 mars 2007
-
7 mars 2007 à 16:29
RastaToon
Messages postés5Date d'inscriptionlundi 1 décembre 2003StatutMembreDernière intervention24 juillet 2008
-
24 juil. 2008 à 11:57
Bonjour,
J'ai une procedure click sur laquelle je souhaiterais changer l'apparence de la souris en sablier et la remettre à l afin de l'évenement.
maui_tlse
Messages postés5Date d'inscriptiondimanche 19 novembre 2000StatutMembreDernière intervention 4 avril 2007 3 avril 2007 à 17:22
J'ai la meme requete que 30563 blowlagoon et je n'arrive pas à faire demarrer le sablier avant le traitement de mon code.
J'ai l'impression que javascript ne donne pas la main à Windows pour changer le curseur car le changement de curseur se fait à la fin du traitement. Ce qui fait que je n'ai jamais le sablier vu qu'il est aussitot retransformé en fleche.
maui_tlse
Messages postés5Date d'inscriptiondimanche 19 novembre 2000StatutMembreDernière intervention 4 avril 2007 3 avril 2007 à 18:00
En fait j'utilise XMLHttpRequest
et je veux que quand la requete est envoyée, le sablier soit mis et 3 minutes plus tard (quand le traitemement est terminé) ce sablier disparaisse.
function go(page,vars,zone){
getXhr();
xhr.onreadystatechange = function(){
if ((xhr.readyState 1) || (xhr.readyState 2)) {
document.getElementsByTagName('body')[0].style.cursor = 'wait';
}
if(xhr.readyState 4 && xhr.status 200){
//document.getElementsByTagName('body')[0].style.cursor = 'default';
document.getElementById(zone).innerHTML = xhr.responseText;
}
}
xhr.open("GET",page,false);
xhr.send(vars);
}
****************************************
L'instruction " document.getElementsByTagName('body')[0].style.cursor = 'wait' " marche car quand je commente le 'default', le sablier reste.
Il ne se declenche pas quand il faut. Sous vb, j'avais le meme probleme car il fallait DoEvent pour laisser windows gerer l'affichage.
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 3 avril 2007 à 19:03
il me semble que xhr.open(,, false) veut dire que tu fais ta requete en mode synchrone donc le readystate ne sera jamais égale à 1 (je pense pas) la solution est que tu changes le cursor avant le send(vars) et (optionel) que tu mettes de l'asynchrone xhr.open(,, true)
maui_tlse
Messages postés5Date d'inscriptiondimanche 19 novembre 2000StatutMembreDernière intervention 4 avril 2007 3 avril 2007 à 19:57
en effet c'est du mode synchrone car j'ai besoin d'utiliser la fonction plusieurs fois d'affilé pour changer plusieurs parties dans ma page web.
Sinon je rentre bien dans l'etat cursor = wait donc pas de pb de ce coté
Mon pb est que meme si je spécifie un cursor à wait, ca ne me l'affiche pas car le temps processeur est alloué a faire les calculs mais pas à m'afficher le sablier.
cs_roro06
Messages postés732Date d'inscriptionjeudi 2 janvier 2003StatutMembreDernière intervention29 octobre 2007 4 avril 2007 à 09:21
Bonjour
c'est pas que le temps processeur est
alloué, c'est que ton navigateur est bloqué jusqu'à recevoir la réponse
(mode synchrone). Donc effectivement, le sablier ne s'affiche peut-être
pas. De plus ce mode n'est pas supporté par tous les navigateurs (FF
1.5, pour ne pas le citer. Je n'ai pas testé par contre FF 2 s'il le
supporte).
Pourquoi ne pas utiliser le mode asynchrone ? si il faut 3 minutes a chaque appel, et que c'est bloqué pendant ce temps, peu d'internautes vont rester