Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Tempo stimato per il download di un file

Link copiato negli appunti

Il Javascript di questa settimana tratta di un argomento ricorrente nel corso della realizzazione di siti Web: il download di file. Molti siti, infatti, mettono a disposizione file nei formati più diversi (zip, pdf, doc ecc.), per il download gratuito od a pagamento. Alcuni siti, addirittura, fanno di questa possibilità un loro punto qualificante (il caso italiano più famoso è VOLftp).
I browser più recenti, nel momento in cui cominciano a scaricare un file via HTTP o FTP, indicano la grandezza del file in Kb e il tempo stimato per il download secondo la velocità corrente. Questo dato risulta poco attendibile per una serie di ragioni e spesso non viene considerato dagli utenti.

Il Javascript di questa settimana permette un approccio differente al problema, indicando il tempo stimato per il download prima che il visitatore attivi l'opzione corrispondente del proprio browser. Perchè cio' avvenga è necessaria una collaborazione del visitatore, il quale deve indicare unicamente la velocità di connessione del suo collegamento (56K, 33,6K, 28.8K, 64K ecc). Per il resto, la grandezza del file puo' essere indicata di default mentre il tempo stimato per il download è compito dello script.

Il file si compone di 1 file:

  • esempio.htm

Per una più semplice comprensione del presente script fai continuamente riferimento al file sopracitato, verificando le procedure e i dati espressi. Solo in questo modo, con un continuo confronto, comprenderai le peculiarità di questo Javascript.

Perchè il Javascript produca i suoi effetti è necessario agire su due distinti punti della pagina: intestazione tra gli elementi <head> e corpo del documento <body>.
La seguente sintassi va aggiunta tra i tag <head>:

<script type="text/javascript" language="javascript">
function cpscalc(myform)
{
var bytes = 0
var trans = 0
bytes = myform.dimensione.value * ((myform.unita.options[0].selected == true)
+ ( (myform.unita.options[1].selected == true)*1024) + ((myform.unita.options[2].selected == true) * 1024*1024))
trans = myform.velocita.value / ( (myform.unitaV.options[0].selected == true) +
( (myform.unitaV.options[1].selected == true) * 8))
myform.result.value = getmin(Math.round(bytes/trans))
}
function getmin(sec)
{
var ore = 0
var minuti = 0
var secondi = 0
var tempo = " "
if(sec<1) return ("meno di un secondo")
ore = Math.floor (sec/3600)
minuti = Math.floor((sec - (ore * 3600))/60)
secondi = Math.floor (sec - ((ore*3600) + (minuti * 60)))
if(sec> 86400) return ("meno di un giorno")
else if(sec >= 3600) tempo = "Ore: " + ore + " minutei: " + minuti + "
secondi: " + secondi
else if( sec< 3600 & sec>=60) tempo = "Minuti: " + minuti + "
secondi: " + secondi
else tempo = "Secondi: " + secondi
return(tempo)
}
</script>

Come è facile immaginare, questo codice imposta i valori relativi ai tempi di scaricamento ed in base ai quali verranno indicate le ore, i minuti ed i secondi di download. Oltre a stabilire la gestione del tempo, questo codice indica le parole ("meno di un secondo", "meno di un giorno", "minuti" ecc.) che verranno aggiunte ai messaggi dello script.

Il codice successivo richiama le impostazioni create in precedenza nel corpo del documento, laddove si vuole inserire la finestra dell'esempio. Viene creato un modulo HTML che riprende sintassi impostata in precedenza tra i campi <head>:

<table class="tabella" border=8>
<td>
<form name="myform">
<strong>dimensione del file</strong><br />
<input type="text" name="dimensione" value="1"
onchange="cpscalc(this.form)">
<select name="unita" onchange="cpscalc(this.form)">
<option>byte
<option selected>kb
<option>mb
</select><p>
<strong>velocità del modem</strong><br />
<input type="text" name="velocita" value="33600"
onchange="cpscalc(this.form)">
<select name="unitav" onchange="cpscalc(this.form)">
<option>cps
<option selected>bps
</select><p>
<strong>tempo stimato per il download</strong><br />
<input type="text" name="result" value=" " size="4"0>
</form>
</td>
</table>
</center>

Questo script puo' essere un'utile strumento a disposizione dei visitatori in caso di download molto frequenti. Affiancarlo come servizio aggiuntivo a pagine che prevedono lo scaricamento di file di medio-grandi dimensioni è un'opzione molto apprezzato dai visitatori.

Ti consigliamo anche