Come evitare che questa funzione venga eseguita più di 2 volte in x milisecondi?
-
12-11-2019 - |
Domanda
Come posso impedire che questo venga eseguito due volte quando arrivo in fondo alla pergamena?
if ($(window).scrollTop() == $(document).height() - $(window).height()){
last_msg_funtion();
}
Opzioni che vedo:
Ho provato a impostare un var caricing_already == false e qualcosa piace:
if(loading_already==false){
loading_already = true;
last_msg_function();
setTimeout('refresh_loading',300);
}
dove
function refresh_loading(){ loading_already = false; }
Ma non ha funzionato, qualche suggerimento per questo?
Grazie!
Soluzione
caricing_already = true;
Hai == che è booleano è operatore, non assegnazione.
Altri suggerimenti
Dovresti usare il fantastico plug -in acceleratore/deboance jQuery. Rende questo genere di cose molto facili.
Il seguente esempio lo garantirà las_msg_function
è chiamato non più di una volta ogni 250 millisecondi (supponendo che l'espressione di rilevamento di scorrimento sia corretta);
if ($(window).scrollTop() == $(document).height() - $(window).height()) {
$.throttle(250, las_msg_function);
}
Ecco una pagina di esempio che mostra come questo viene utilizzato insieme al rilevamento di scorrimento (guarda il secondo esempio)