Newsgroup: it.comp.lang.javascript
Titolo: setTimeout e setInterval

Ciao a tutti
sto cercando di capire come utilizzare le due funzioni setInterval e
setTimeout
ho creato un array  che contiene una serie di stringhe che non sono
nient'altro che indirizzi http
dopo di che creo un ciclo
for(i=1;i<=5;i++)
{
    //window.setTimeout(window.open(a[i]),10000)
    window.setInterval(window.open(a[i]),10000)
}
e vorrei che mi si aprano delle finestre con i miei relativi url ma ogni tot
di secondi
ora che succede che lo script parte, ma si aprono tutte le finestre insieme
mente io gli vorrei dare un intervallo di 10 secondi
cosa sto sbagliano?
ciao e grazie
Hydra
www.gale8.it

 mente io gli vorrei dare un intervallo di 10 secondi
Ora ti è chiaro il perché?
-- 
"qualcuno è andato per età
 qualcuno perchè già dottore
 e insegue una maturità, si è sposato, fa carriera
 ed è una morte un po' peggiore"
									    F.G.

 Provalo perché io di preferenza uso setTimeout,
Perché? "The right tool for the right job". Come hai detto tu, setTimeout
esegue una singola operazione dopo tot msec, mentre setInterval la esegue
ogni tot msec. Sono due cose diverse che servono per scopi diversi.
-- 
~ "Nell'anno 1969 è bastata la potenza di calcolo di due Commodore 64 per
mandare con successo una navicella sulla Luna. Nell'anno 2003 è
necessario un Pentium 4 a 2000 Mhz per far funzionare Windows XP.
Qualcosa deve essere andato storto."

 ogni tot msec. Sono due cose diverse che servono per scopi diversi.
Lo sapevo che mi avresti cazziato! :-) 
E' vero, in generale nei casi dove sarà eseguito per poche volte di
abitudine anziché verificare la condizione e se è verificata usare
clearTimeout preferisco usare setTimeout e se non è verificata risettarlo.
Alla fin fine è la stessa cosa (e qua mi ricazzierai!), sono sempre 2 righe
di codice. E' abitudine. Eppoi: ho un leggerissimo vaghissimo ricordo che
con IE4 il setInterval non funzionava benissimo...solo un vago ricordo, ma
da quei "problemi" che avevo avuto tipo 10 anni fa avevo preso l'abitudine
di usare solo setTimeout. Magari ricordo male, o magari era un problema che
non avevo saputo risolvere? boh
-- 
"E' l' ignoranza che crea l'intolleranza
 di gente cieca e senza coscienza"
									  S.S.S.

 non avevo saputo risolvere?
Sinceramente non ricordo alcun problema legato al setInterval, ai tempi di
IE4/NN4.x... almeno, non mi pare di averne incontrati di "bloccanti". Anzi,
ricordo che l'uso di setTimeout su uno script in IE4 o NN4, che faceva da
"news ticker", lasciato andare per un po' causava dei memory leaks.


 setTimeout() per le animazioni ed effetti strani.
Sì, forse era solo per questo e il mio ricordo di IE4 è bacato...
-- 
"Emancipate yourselves from mental slavery;
None but ourselves can free our minds"
									    B.M.

 :-) sì dai, per questa stavo scherzando
Eh lo so, ma volevo sentirtelo dire prima di avere un collasso. :P


 Eh lo so, ma volevo sentirtelo dire prima di avere un collasso. :P
:-)


Intanto mille grazie
funziona tutto
sto seguendo la vostra discussione,...ma devo dire che c'ho capito poco
ho cpaito che setTimeout avvia dopo un toto di tempo
mentre setInterval crea un ciclo ogni tot tempo
giusto?
non ho capito poi questo discorso delle schedulazioni
ma quindi io lo sto usando cosě,
var hnd=setInterval("tuafunction()",10000), i=1;
var popUpWin=0;
function tuafunction() {
 if(i==a.length)
  clearInterval(hnd);
 else
  if(popUpWin)
  {
    if(!popUpWin.closed) popUpWin.close();
  }
  window.open(a[i++],'popUpWin');
}
e il mio pc non si sta imballando
va bene, o devo fare qualche altra modifica?
ciao e grazie ancora
Hydra


 va bene, o devo fare qualche altra modifica?
per me va benissimo
-- 
"That until there is no longer first class
And second class citizens of any nation
Until the colour of a man's skin
Is of no more significance than the colour of his eyes
Me say war"
B.M.