Ajout de millisecondes à la minuterie en html

Est-ce que je peux ajouter des millisecondes à ma minuterie?

J'utilise actuellement cette minuterie mais ne compte qu'en secondes.

var count=99; var counter=setInterval(timer, 1000); //1000 will run it every 1 second function timer(){ count=count-1; if (count <= 0){ clearInterval(counter); return; } document.getElementById("timer").innerHTML=count + " seconds"; // watch for spelling } 

Merci

Les minuteries ne fonctionneront pas avec une précision de millisecondes – ce n'est pas seulement en dessous du délai d'attente minimum JS standard, les événements temporisés peuvent faire la queue et toutes sortes d'autres problèmes. En tout cas (sans jeu de mots), vous ne pouvez pas voir un compteur de minuterie 1000 fois par seconde.

Il suffit d'utiliser window.requestAnimationFrame place et de montrer la différence entre le temps passé à cette fonction et l'heure de début de référence de la minuterie.

 var timer = document.getElementById('timer'); var expires = +new Date() + 10000; (function update() { var now = +new Date(); var togo = expires - now; if (togo > 0) { timer.innerHTML = togo; window.requestAnimationFrame(update); } else { timer.innerHTML = 0; } })(); 
 <div id="timer"></div> 

Toujours en retard à la fête, mais voici une première fois. Il semble dommageux de le gaspiller.

http://jsfiddle.net/dy25nce7/

 function countdownTimer(el,duration){ var exp = Date.now() + duration;//expires in now + duration milliseconds //callback using window.requestAnimationFrame if available else setTimeout at 60fps: var rAF = window.requestAnimationFrame || function(callback){window.setTimeout(callback,1000/60);}; //left-pad with leading zeros function pad(n,s){ s = s||2; return ("00000"+n).substr(-s); } //The loopy bit: //note the use of a bitwise right-shift to convert to int (http://jsperf.com/number-vs-parseint-vs-plus/39) (function update() { var n = Date.now(), e = (exp-n), ms= (e%1000), s = ((e/1000)%60) >> 0, m = ((e/(1000*60))%60) >> 0, h = ((e/(1000*60*60))%24) >> 0; if (e > 0) { el.innerHTML = pad(h)+":"+pad(m)+":"+pad(s)+":"+pad(ms,3); rAF(update); } else { el.innerHTML = "00:00:00:000"; } })();//IIFE (Immediately-Invoked Function Expression) }; countdownTimer(document.getElementById('timer'),10000);