Я сделал бесконечный скроллер. вот код:
<script type="text/javascript">
function next_page(url_no){
$.ajax({
type : 'GET',
url : 'http://' + document.domain + ':' + location.port + '/bc-m-home?page=' + String(url_no) /* http://127.0.0.1:5000/bc-m-home?page=2 */
})
.done(function(data) {
$('#new_post').append(data);
})
event.preventDefault();
}
window.onscroll = function(ev) {
if ((window.innerHeight + window.scrollY) >= document.body.offsetHeight-1000) {
if ( Number("{{last_page}}") > Number(document.getElementById("url_no").innerHTML) ){ /* {{last_page}} contain the last page number and "document.getElementById("url_no").innerHTML" contain the next page number. In this time the next page number is 2 . */
next_page(document.getElementById("url_no").innerHTML)
document.getElementById("url_no").innerHTML = Number(document.getElementById("url_no").innerHTML) +1 /* here I increase the next page number */
}
}
}
</script>
Но проблема в том, что когда я достигаю нижней части страницы, она вызывает функцию "next_page" 20-30 раз. по этой причине ajax отправляет много запросов одновременно.
но я хочу, когда запрос будет отправлен, пользователь получит какое-то сообщение. И когда пользователь снова достигнет дна, запрос снова будет отправлен. Не 20-30 запросов одновременно.