span - set innertext javascript
Cálculo del tiempo restante de carga (3)
Estoy usando el complemento Uploadify para permitir que los usuarios carguen archivos, y tengo la barra de progreso funcionando. Ahora quiero darle al usuario un tiempo estimado hasta su finalización, pero no estoy seguro de cómo calcularlo usando Javascript.
Supongamos que tengo las siguientes variables: uploadSpeed
(en kb / s), timeStarted
(¿un objeto de fecha de Javascript?), fileSize
(tamaño del archivo en bytes). ¿Cómo puedo calcular una cuenta atrás hasta que el archivo esté completamente cargado?
¿Es solo una pregunta matemática? Si es así, tome la diferencia entre timeStarted y timeNow, multiplique eso con uploadSpeed, tome el resultado y restelo del fileSize y divida eso por su uploadSpeed. Ese es su tiempo restante (suponiendo que uploadSpeed es constante en cualquier momento).
(fileSize - (timeNow - timeStarted) * uploadSpeed) / uploadSpeed
Pero una manera mucho más precisa es tomar la cantidad real de bytes que se han cargado aún para calcular el tiempo restante. Eso no debería ser un problema ya que el usuario está cargando un archivo a su servidor. Por lo tanto, puede simplemente leer el tamaño de archivo parcial de su servidor.
Realmente no necesita la variable timeStaed ya que uploadSpeed no es constante, haría mejor monitoreando la cantidad de bytes cargados.
var uploaded // ammount of bytes uploaded
setInterval("updateProgress()", 1000) //every second updates the uploaded counter
function updateProgress(){
uploaded += uploadSpeed //increments the ammount of bytes uploaded in a second
updateProgressBar((uploaded/fileSize)*100) // update progress bar
}
var uploadedSoFar = uploadSpeed * (Date.now() - timeStarted.milliseconds) / 1000;
var timeRemaining = ((fileSize - uploadedSoFar) / uploadSpeed) + '' seconds'';