@aspirantes

Как избежать множественного использования скрипта?

Здравствуйте. Столкнулся с проблемой... На локальном сервере всё отлично, но при задержках, скрипт используется по 5-6 раз, без обновления переменных... Судя по всему, не выполняется даже начало кода... Так как пробовал сразу запретить дальнейшее выполнение...

var block1 = document.getElementById('infinite-scroll');
var timeout1;

block1.addEventListener("scroll", function(){
    if (timeout1 != null) {
    clearTimeout(timeout1)};
    timeout1 = setTimeout(scroll__load, 500)});

scroll__load = function(){
        var blockheight = block1.offsetHeight;
        var contentheight = block1.scrollHeight;      // 1) высота блока контента вместе с границами
        var scrolltop       = block1.scrollTop;      // 2) текущее положение скролбара

        var y             = contentheight - scrolltop;
        
        // если пользователь достиг конца
        if(y <= blockheight * 1.5)
        {
            //загружаем новое содержимое в элемент
            scroll_load();
        }
 };

 var i = 32;
 var i_old;

 scroll_load = function() {
    if (i_old != i) {
        console.log(i);
        var params = 'zapros='+i+'';
        var xmlHttp = new XMLHttpRequest();
            xmlHttp.onreadystatechange = function() {
                if(xmlHttp.readyState == 4 && xmlHttp.status == 200)    {
                    block1.insertAdjacentHTML('beforeend', xmlHttp.responseText);
                    i_old = i;
                    i = i+6;

                    filtrus();
                }
            }
            xmlHttp.open("POST", "php/scroll__load.php");
            xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            xmlHttp.send(params);
    }
}
  • Вопрос задан
  • 117 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы