Halo
Dopo solo pochi giorni torno a infliggervi i miei dubbi

Sto cercando di creare un forum che abbia una visualizzazione delle risposte "twitter-like" al posto delle solite pagine.

Appena aperto un post vengono mostrate 20 risposte, scrollando la pagina in basso, arrivati alla fine della scrollbar, scatta l'"event" che fa caricare le successive 20 risposte. Fin qui tutto ok.

Il problema sta nel fatto che la funzione chiamata dallo scroll event viene eseguita più di una volta, e in questo modo fa visualizzare 40 (60, 80..) risposte, invece di altre 20.

Il codice che ho utilizzato è questo:
(utilizzo prototype 1.7)

codice:
Event.observe(window, 'scroll', function scrolled() {

var body = document.body,
html = document.documentElement;

var heightscrollfor = Math.max( body.scrollHeight, body.offsetHeight, 
                            html.clientHeight, html.scrollHeight, html.offsetHeight );  //altezza totale dello scroll
					   
					   var altdoc1 = window.outerHeight; //altezza del browser
					   var altdoc2 = window.pageYOffset; //posizione dello scroll
					   var altdoc3 = altdoc1 + altdoc2;

  if ( altdoc3  >= heightscrollfor ) {
	 $('visaltripost').innerHTML='[img]images/index2/loading.gif[/img]';
	 
       scrolledToBottom();
	
	return false;
  }
});
Il problema fondamentale sembra essere il fatto che quando nella pagina lo scroll si trova alla fine parte la funzione, si aggiungono gli elementi e quindi anche la posizione della scrollbar cambia (va più in alto), però nel frattempo la funzione è partita già 2 o 3 volte.

Cosa posso fare per risolvere?


Grazie in anticipo y.y