Java refresh
Résolu
gilbert1995
Messages postés
519
Statut
Membre
-
Groarh Messages postés 706 Statut Membre -
Groarh Messages postés 706 Statut Membre -
Bonjour, voila j'ai un compte a rebours mais il fige il ne rafraîchit pas au seconde voila mon code
<script language="JavaScript">
// la date a partir de laquelle on compte
var cible = new Date("July 22, 2011 14:15:00");
// nombre de millisecondes par an, jour, heure, minute et seconde
var mms_an = 365 * 24 * 60 * 60 * 1000;
var mms_jour = 24 * 60 * 60 * 1000;
var mms_heure = 60 * 60 * 1000;
var mms_minute = 60 * 1000;
var mms_seconde = 1000;
function decompte() {
// la date courante
var aujourdhui = new Date();
// on cree les variables qui accueilleront les differences entre aujourd'hui et la date a atteindre
var change_a = -1;
var change_j = -1;
var change_h = -1;
var change_m = -1;
// le total de millisecondes de differences
var diff_mms = cible.getTime() - aujourdhui.getTime();
// le nombre d'annee(s) entieres de difference
diff_annee = Math.floor(diff_mms / mms_an);
// on retire le nombre d'annees, fois le nombre de millisecondes par an, de la difference entre aujourd'hui et la date a atteindre
diff_mms -= diff_annee * mms_an;
// pareil pour les jours
diff_jours = Math.floor(diff_mms / mms_jour);
diff_mms -= diff_jours * mms_jour;
// pour les heures
diff_heures = Math.floor(diff_mms / mms_heure);
diff_mms -= diff_heures * mms_heure;
// les... minutes, bravo ;-)
diff_minutes = Math.floor(diff_mms / mms_minute);
diff_mms -= diff_minutes * mms_minute;
// les secondes, ce qui reste en fait.
var diff_secondes = Math.floor(diff_mms / mms_seconde);
// on affecte nos resultats aux champs du formulaire
document.write('Annee' + diff_annee);
document.write('jours' + diff_jours);
document.write('heures' + diff_heures);
document.write('minutes' + diff_minutes);
document.write('secondes' + diff_secondes);
break;
// on relance la fonction pour actualiser a la seconde
setTimeout("decompte()",1000);
}
</script>
<body onLoad="javascript:decompte()"></body>
A voir également:
- Java refresh
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
1 réponse
Salut,
tu as un gros problème ici :
Le code ne correspond pas à ce qui est en commentaire : ça n'affecte aucun champ de formulaire. Et de toute façon, il n'y a pas de formulaire car ton <body> est vide. Quant au break, je ne comprends pas à quoi il est censé servir.
La fonction document.write() est une très vieille fonction qui détruit la page courante pour écrire des données à l'écran. Autant être clair : elle ne devrait plus du tout être utilisée aujourd'hui.
Si tu as un débugger JavaScript dans ton navigateur, tape juste document.write('bonjour') et regarde le code source de la page, tu verras que ça détruit aussi le JavaScript, bref : c'est un désastre.
De même, c'est
Alors si tu veux faire ça proprement, utilise les méthodes du DOM, par exemple :
Il y a une méthode qui fait moins de lignes de code, mais personnellement, je la déconseille, c'est d'utiliser body.innerHTML.
Bonus : avec l'opérateur modulo (%), il y a moyen de pas mal simplifier tes calculs. Penses-y ;)
tu as un gros problème ici :
// on affecte nos resultats aux champs du formulaire
document.write('Annee' + diff_annee);
document.write('jours' + diff_jours);
document.write('heures' + diff_heures);
document.write('minutes' + diff_minutes);
document.write('secondes' + diff_secondes);
break;
Le code ne correspond pas à ce qui est en commentaire : ça n'affecte aucun champ de formulaire. Et de toute façon, il n'y a pas de formulaire car ton <body> est vide. Quant au break, je ne comprends pas à quoi il est censé servir.
La fonction document.write() est une très vieille fonction qui détruit la page courante pour écrire des données à l'écran. Autant être clair : elle ne devrait plus du tout être utilisée aujourd'hui.
Si tu as un débugger JavaScript dans ton navigateur, tape juste document.write('bonjour') et regarde le code source de la page, tu verras que ça détruit aussi le JavaScript, bref : c'est un désastre.
De même, c'est
<script type="text/javascript">et pas
<script langage="javascript">sinon ça passe pas sous certains navigateurs modernes (Firefox, Opera) qui ont décidé qu'il était temps de faire bouger les choses.
Alors si tu veux faire ça proprement, utilise les méthodes du DOM, par exemple :
function print( s ) {
document.body.appendChild(document.createTextNode(s));
};
print('Annee' + diff_annee);
print('jours' + diff_jours);
print('heures' + diff_heures);
print('minutes' + diff_minutes);
print('secondes' + diff_secondes);
Il y a une méthode qui fait moins de lignes de code, mais personnellement, je la déconseille, c'est d'utiliser body.innerHTML.
Bonus : avec l'opérateur modulo (%), il y a moyen de pas mal simplifier tes calculs. Penses-y ;)
Bonne chance !