Le pagine in questione sono dei sommari con le miniature di tutti i video di un certo autore.
A volte contengono moltissime miniature, oltre 200.
La pagina � creata da uno script PHP, poi viene letta da uno script Javascript.
Il mio server ha una protezione DDoS, se un certo utente effettua molte richieste in un tempo determinato lo blocca.
Nella pagina un primo blocco di miniature, le pi� recenti, sono sempre visibili, le altre, con stile "display:none" devono essere richiamate con un bottone "ALTRI".
Lo script Javascript deve trasformare lo stile "display:none" in "display:inline-block", in un tempo abbastanza lungo da non incappare nella protezione DDoS.
La funzione "while" non pu� essere ne fermata ne cadenzata.
Ecco allora come ho risolto, non la uso!!
Quando viene invocata la funzione altri con il bottone "ALTRI"codice:<script type="text/javascript"> function altri(){ j=1; var att = setInterval(function(){wj = document.getElementsByClassName("n"+j); for (i = 0; i < wj.length; i++){wj[i].style.display='inline-block'} if(j==1){clearInterval(att)} j=j+1}, 8000)} </script>
per prima cosa creo la variabile j globale, � molto importante!!!
creo una variabile att() che � il cuore dello script che effettua la trasformazione dello stile;
cadenzo questa funzione con l'istruzione setInterval;
controllo il cadenzamento con una semplice istruzione for() che controlla il numero delle reiterazioni e, quando raggiunto il limite prefissato esce dal ciclo con clearInterval(att);
clearInterval(att) mi permette inoltre di aggiungere alla fine del ciclo altre istruzioni, ininfluenti al ciclo stesso, ma utili alla pagina.
Tutto qui!

Rispondi quotando