Bonjour,
Ma question est peut être simpliste, mais comment générer un nom de variable aléatoire (et bien sur pourvoir l'utiliser par la suite) ?
Je suis un peu débutant et après quelques recherches, je n'ai point trouvé de réponse...
merci.
Bonjour,
Ma question est peut être simpliste, mais comment générer un nom de variable aléatoire (et bien sur pourvoir l'utiliser par la suite) ?
Je suis un peu débutant et après quelques recherches, je n'ai point trouvé de réponse...
merci.
tout dépend de ce que tu souhaites utiliser comme caractères pour le nom de ta variable aléatoire...
il suffirait d'avoir une chaine alpahabet et de piocher au hasardpour faire un subString ou (un plice sur un array si tu ne veux utiliser qu'une fois le caractère)
Code : Sélectionner tout - Visualiser dans une fenêtre à part Math.round(Math.random())*Alphabet.length
sur l'alphabet pour concaténer une chaine
ensuite
et voilà tu as une variable
Code : Sélectionner tout - Visualiser dans une fenêtre à part window[chaine]
ouai en fait je sais générer un nombre aléatoire :
ce que je ne sais pas faire en fait c'est que, pour l'exemple suivant...
Code : Sélectionner tout - Visualiser dans une fenêtre à part var rando = Math.round((Math.random()*1000000));
...412454 soit un nombre aléatoire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part var rando412454 = 'test';
ha ben si c'est juste ça c'est beaucoup plus simple :
Maintenant je ne vois pas vraiment l'utilité du truc
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 var rando = Math.round((Math.random()*1000000)); var VarRando = "rando"+rando window[Varrabdo]='test'
ouai je sais c'est un peu tordu comme truc. En fait quand j'utilise InnerHTML dans une fonction AJAX sous FF et OPERA, et j'ai un problème de cache. Alors que sous IE (et oui) et sous FF 3.0 beta 5, cela fonctionne parfaitement.
J'essaye juste de contourner ce bug (si s'en ai un).
merci je vais essayer cela...
ok ça marche bien mais mon bug est toujours là...
merci en tout cas.
contourne le cache avec un timestamp en paramètre dans le lien
ouai mais c'est de l'AJAX, je ne rafraichi pas la page.
J'ai commencé à cibler le problème. Le bug se trouve au niveau de la première réponse de la requête : xhr.readyState == 1.
Et ca ne marche pas sous Opera et Firefox 2.0... soupir ...
??? je ne capte pas si tu ne rafraichis pas la page ??, en quoi le cache te gene-t-il ???
en fait pour l'histoire :
1 - j'ai une ligne de tableau.
2 - dans une cellule une image avec un lien (fonction ajax).
3 - quand je clique dessus je change le contenu de cette cellule (avec InnerHTML) pendant les étapes xhr.readyState 1, 2 et 3. (pour éviter erreur suite doubleclic).
4 - et à l'étape xhr.readyState 4, le contenu de la cellule est de nouveau modifié avec nouveau lien et nouvelle image.
cela fonctionne.
le problème est que quand je clique sur le lien de la cellule de dessus (par exemple), le contenu de notre cellule initiale change pour le contenu de l'étape 3.
voila je sais pas si je suis clair, c'est pas simple...
ce n'est aps une histoire de cache ...
c'est un problème d'instanciation d'ajax ...
sur le onclick il faut lancer une nouvelle instanciation d'ajax sinon il cafouille avec l'instanciation déja lancé ...
Tu peux par exemple le gerer dans un array an faisant un push d'une nouvelle instanciation d'ajax sur chaque click de cellule.
Leplus simple serait d'empecher le click global sur la page pendant un ajax jusqu'à sa completion ...
peut être par exemple avec un onmousedown=returnfase sur le body et le rétablir après le readystatus 4 ?
heu... comment on fait pour
un truc de ce genre :onmousedown=returnfase sur le body
?
Code : Sélectionner tout - Visualiser dans une fenêtre à part document.body.onmousedown = return false;
merci
mais ça ne fonctionnera pas parceque c'est le tableau qui prend le click avant le body...
Code : Sélectionner tout - Visualiser dans une fenêtre à part document.body.onmousedown = function(){return false};
il faudrait soit le faire sur tous les td...
soit mettre un div en z-index de premier plan qui prendra le click et lui coller un cancel bubble ou stopropagation
effectivement ça ne marche pas.
peut être en empêchant le clic du lien ?
bon, je vais m'en débrouiller.
merci !
regarde par là ...
http://www.sebemex.fr/Extramiante/Catalogue/index.htm
je mets un masque au dessus de la page pendant l'ajax ...
bon ça me gonfle.
De toute façon ça fonctionne même au doubleclic, c'est juste ce message d'erreur sous Firebug qui m'obsédait.
Qu'importe le flacon pourvu qu'on est l'ivresse !
a+ et merci pour tout !
oups pas vu le dernier post
ouai j'y avais pensé mais bon...
je vais voir.
merci
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager