Por fin luego de tanto batallar ya encontramos la solución de este atasco que ciertos los usuarios de este sitio han tenido. Si tienes algo más que compartir no dudes en aportar tu conocimiento.
Solución:
demostración jsbin.com
Verá que el código de demostración es solo un contador de milisegundos de inicio/detención/reinicio. Si desea hacer un formato de fantasía en el tiempo, eso depende completamente de usted. Esto debería ser más que suficiente para empezar.
Este fue un pequeño proyecto divertido en el que trabajar. Así es como lo abordaría
var Stopwatch = function(elem, options)
var timer = createTimer(),
startButton = createButton("start", start),
stopButton = createButton("stop", stop),
resetButton = createButton("reset", reset),
offset,
clock,
interval;
// default options
options = options ;
Obtenga algunos envoltorios HTML básicos para ello
El uso es muy simple a partir de ahí.
var elems = document.getElementsByClassName("stopwatch");
for (var i=0, len=elems.length; i
Como beneficio adicional, también obtiene una API programable para los temporizadores. Aquí hay un ejemplo de uso
var elem = document.getElementById("my-stopwatch");
var timer = new Stopwatch(elem, delay: 10);
// start the timer
timer.start();
// stop the timer
timer.stop();
// reset the timer
timer.reset();
Complemento jQuery
En cuanto a la parte de jQuery, una vez que tenga una buena composición de código como la anterior, escribir un complemento de jQuery es un modo fácil
(function($)
var Stopwatch = function(elem, options)
// code from above...
;
$.fn.stopwatch = function(options)
return this.each(function(idx, elem)
new Stopwatch(elem, options);
);
;
)(jQuery);
Uso del complemento jQuery
// all elements with class .stopwatch; default delay (1 ms)
$(".stopwatch").stopwatch();
// a specific element with id #my-stopwatch; custom delay (10 ms)
$("#my-stopwatch").stopwatch(delay: 10);
Dos soluciones nativas
performance.now
--> Llamar a... tomó6.414999981643632
milisegundos.console.time
--> Llamar a... tomó5.815
milisegundos
La diferencia entre ambos es la precisión.
Para uso y explicación sigue leyendo.
Performance.now
(Para uso con precisión de microsegundos)
var t0 = performance.now();
doSomething();
var t1 = performance.now();
console.log("Call to doSomething took " + (t1 - t0) + " milliseconds.");
function doSomething()
for(i=0;i<1000000;i++)var x = i*i;
rendimiento.ahora
A diferencia de otros datos de tiempo disponibles para JavaScript (por ejemplo, Date.now), las marcas de tiempo devueltas por Performance.now() no están limitadas a una resolución de un milisegundo. En su lugar, representan tiempos como números de punto flotante con una precisión de microsegundos.
Además, a diferencia de Date.now(), los valores devueltos por Performance.now() siempre aumentan a un ritmo constante, independientemente del reloj del sistema (que puede ajustarse manualmente o desviarse mediante un software como NTP). De lo contrario, performance.timing.navigationStart + performance.now() será aproximadamente igual a Date.now().
console.time
Ejemplo: (timeEnd
envuelto en setTimeout
para simulación)
console.time('Search page');
doSomething();
console.timeEnd('Search page');
function doSomething()
for(i=0;i<1000000;i++)var x = i*i;
Puede cambiar el nombre del temporizador para diferentes operaciones.
Un reloj sencillo y fácil para ti y no me olvides 😉
var x;
var startstop = 0;
function startStop() /* Toggle StartStop */
startstop = startstop + 1;
if (startstop === 1)
start();
document.getElementById("start").innerHTML = "Stop";
else if (startstop === 2)
document.getElementById("start").innerHTML = "Start";
startstop = 0;
stop();
function start()
x = setInterval(timer, 10);
/* Start */
function stop()
clearInterval(x);
/* Stop */
var milisec = 0;
var sec = 0; /* holds incrementing value */
var min = 0;
var hour = 0;
/* Contains and outputs returned value of function checkTime */
var miliSecOut = 0;
var secOut = 0;
var minOut = 0;
var hourOut = 0;
/* Output variable End */
function timer()
/* Main Timer */
miliSecOut = checkTime(milisec);
secOut = checkTime(sec);
minOut = checkTime(min);
hourOut = checkTime(hour);
milisec = ++milisec;
if (milisec === 100)
milisec = 0;
sec = ++sec;
if (sec == 60)
min = ++min;
sec = 0;
if (min == 60)
min = 0;
hour = ++hour;
document.getElementById("milisec").innerHTML = miliSecOut;
document.getElementById("sec").innerHTML = secOut;
document.getElementById("min").innerHTML = minOut;
document.getElementById("hour").innerHTML = hourOut;
/* Adds 0 when value is <10 */
function checkTime(i)
if (i < 10)
i = "0" + i;
return i;
function reset()
/*Reset*/
milisec = 0;
sec = 0;
min = 0
hour = 0;
document.getElementById("milisec").innerHTML = "00";
document.getElementById("sec").innerHTML = "00";
document.getElementById("min").innerHTML = "00";
document.getElementById("hour").innerHTML = "00";
00 :
00 :
00 :
00
Calificaciones y reseñas
Agradecemos que desees añadir valor a nuestra información tributando tu experiencia en las aclaraciones.