// 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");
var site= infiniteResponse[0].children[section].children;
for (var i=0; i < h2s.length; i++) {
if (h2s[i].innerHTML === site[i].textContent.replace(/["]/g, "'").split(", ")[0].replace(/[']/g, "")) sitesOnPage.push(i);
}
}
function randomSiteInfosF(section, siteN) {
// Checks if it's a number and not a string or something else
if (typeof siteN !== "number") return;
if (typeof section !== "number") return;
siteChecker_RNG(section, siteN)
// Infos about the site: desc, img, title
// section \/ the site infos \/
eval(`siteInfo${siteN}= infiniteResponse[0].children[${section}].children[${eval(`randomSite${siteN}`)}].textContent.replace(/["]/g, "'").split(", ")`);
eval(`siteTitle${siteN}= siteInfo${siteN}[0].replace(/[']/g, "")`);
eval(`siteDesc${siteN}= siteInfo${siteN}[1]`);
eval(`siteImg${siteN}= siteInfo${siteN}[2].replace(/[']/g, "")`);
eval(`siteURL${siteN}= siteInfo${siteN}[3]`);
}
function siteChecker_RNG(section, siteN) {
// Checks if it's a number and not a string or something else
if (typeof siteN !== "number") return;
if (typeof section !== "number") return;
// section \/ how many sites \/
var sitesAvailable= infiniteResponse[0].children[section].children.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(section, siteN)
} else continue;
}
eval(`randomSite${siteN}= randomSiteN`);
}
var howManySitesPerLoad= 3;
for (let i= 0; i < howManySitesPerLoad; i++) {
randomSiteInfosF(section, i);
}
Basically i'm trying to check if the number generated is correct or not, when it gets called, it creates an infinite loop that is a recursion if i understood right.
"sitesOnPage" is an array that over time it gets filled with numbers (empty at start).
I know that eval shouldn't be used often and such. Tips to find another way around it are appreciated being that i don't use it often myself.
I'm using a database to get all the data to compare with the numbers.
This is part of code that is used for my site in its sections, http://www.coolwebsites.ml/
Aucun commentaire:
Enregistrer un commentaire