递归函数无法检查网站的生成索引(存储在我的数据库中的 desc、title、img 等)是否已在页面上

Recursive function can't check if generated index of a site (desc, title, img, etc stored in my database) is already on page

var infiniteResponseAAA= {
Poodwaddle_com: '"Poodwaddle.com", infiniteResponse[1].children[language].children[17].innerHTML, "Images\poodwaddle.com.jpg", searchBResponse[1].children[17].textContent',
SystemRequirementsLab_com: '"System Requirements Lab.com", infiniteResponse[1].children[language].children[18].innerHTML, "Images\systemrequirementslab.com.jpg", searchBResponse[1].children[18].textContent',
BrowsePad: '"BrowsePad.org", infiniteResponse[1].children[language].children[19].innerHTML, "Images\BrowsePad.org.jpg", searchBResponse[1].children[19].textContent',
SMMRY_com: '"SMMRY.com", infiniteResponse[1].children[language].children[20].innerHTML, "Images\smmry.com.jpg", searchBResponse[1].children[20].textContent',
Whatthefuckshouldimakefordinner_com: '"Whatthefuckshouldimakefordinner.com", infiniteResponse[1].children[language].children[21].innerHTML, "Images\Whatthefuckshouldimakefordinner.com.jpg", searchBResponse[1].children[21].textContent',
Coolors_co: '"Coolors.co", infiniteResponse[1].children[language].children[22].innerHTML, "Images\Coolors.co.jpg", searchBResponse[1].children[22].textContent',
Numbeo_com: '"Numbeo.com", infiniteResponse[1].children[language].children[23].innerHTML, "Images\Numbeo.com.jpg", searchBResponse[1].children[23].textContent',
Doesthedogdie_com: '"Doesthedogdie.com", infiniteResponse[1].children[language].children[24].innerHTML, "Images\Doesthedogdie.com.jpg", searchBResponse[1].children[24].textContent',
Online_Convert_com: '"Online-Convert.com", infiniteResponse[1].children[language].children[25].innerHTML, "Images\Online-Convert.com.jpg", searchBResponse[1].children[25].textContent'
}

var infiniteResponse= Object.keys(infiniteResponseAAA).sort();

var sitesOnPage = [];


var brLength= document.querySelectorAll("br").length;
var whereToAddIt= document.querySelectorAll("br")[brLength-1];


var observer = new IntersectionObserver(function(entries){
    entries.forEach(function(entry) {
        if (entry.isIntersecting) {
            getDataInfiniteS();
        }
    });
});
observer.observe(whereToAddIt);


// Data checker
function getDataInfiniteS() {

    InfiniteScrolling();

}

// Actual script
function InfiniteScrolling() {

    var code;

    // It gets the first 5 sites that are already on the page and puts them inside sitesOnPage
    if (sitesOnPage[0] === undefined) {
        var h2s= document.querySelectorAll("h2");
        infiniteResponseAAA[infiniteResponse[0]].split(",")[0].replace(/["]/g, "");

        for (var i=0; i < h2s.length; i++) { 

            if (h2s[i].innerHTML === infiniteResponseAAA[infiniteResponse[i]].split(",")[0].replace(/["]/g, "")) sitesOnPage.push(i);

        }
    }


    function randomSiteInfosF(siteN) {

        // Checks if it's a number and not a string or something else
        if (typeof siteN !== "number") return;


        siteChecker_RNG(siteN)


        // Infos about the site: title              
        eval(`siteInfo${siteN}= infiniteResponseAAA[infiniteResponse[${eval(`randomSite${siteN}`)}]].split(",")`);
        eval(`siteTitle${siteN}= siteInfo${siteN}[0].replace(/["]/g, "")`);

    }


    function siteChecker_RNG(siteN) {

        var sitesAvailable= infiniteResponse.length;
        var h2s= document.querySelectorAll("h2");
        var randomSiteN= Math.floor(Math.random() * sitesAvailable);

        //  Return if all sites are loaded
        if (h2s.length === sitesAvailable) return;


        // Checks if the random number is a correct one
        for (var i= 0; i < sitesOnPage.length; i++) {

            if (randomSiteN === sitesOnPage[i]) {

                siteChecker_RNG(siteN)

            } else continue;

        }

        eval(`randomSite${siteN}= randomSiteN`);

    }


    var howManySitesPerLoad= 3;


    for (let i= 0; i < howManySitesPerLoad; i++) {
        randomSiteInfosF(i);
    }



    // Creates a new div for the sites loaded from the database
    if (document.getElementById("InfiniteScrollingID") === null) {

        whereToAddIt.insertAdjacentHTML("afterend", "<div id='InfiniteScrollingID'></div>");

    }


    for (let i= 0; i < howManySitesPerLoad; i++) {

        code= `${eval(`siteTitle${i}`)}\n</br></br></br>`

        document.getElementById("InfiniteScrollingID").insertAdjacentHTML("beforeend", code);

    }

    for (var i=0; i < howManySitesPerLoad; i++) {

        sitesOnPage.push(eval(`randomSite${i}`))

    }

    brLength= document.querySelectorAll("br").length;
    whereToAddIt= document.querySelectorAll("br")[brLength-1];

    observer.disconnect()
    observer.observe(whereToAddIt)

}

这是一个 re-post,因为在我提供一个最小的工作示例之前没有人回答我,这个脚本对我的网站非常重要。

这是用于我网站的部分代码的一部分,http://www.coolwebsites.ml/

https://youtu.be/QDrn_9svt6Y

代码笔:https://codepen.io/Attisalva/pen/pojdZXr?editors=1010

在 CodePen 示例(同样的问题)中,它创建(在本例中为标题名称以简化代码)一些页面上已经存在的标题名称,它应该只创建尚未创建的标题(您可以在 object "infiniteResponseAAA").

中找到标题

我试图在页面上随机延迟加载新图像、标题、描述等,但它一直在创建,而没有正确检查页面上是否已经存在所有内容。

是因为我没有end/return得到好号后的功能