var count = 0; var countElement = document.getElementById("counterDisplay"); var buttonElement = document.getElementById("my-btn"); var url = window.location.hostname; //Récupère la liste des pages visités var listHasVisited = new Map(JSON.parse(localStorage.getItem('hasVisited'))); //Appel la fonction à chaque fois que la page est chargé window.onload = numberChangeGET; //Récupère la classe de la balise avec l'id "conteneur", puis concatenne les classes pour avoir le nom de la page var cle_1 = sandpCompteurVisites[0].ValueCle1; var cle_2 = sandpCompteurVisites[0].ValueCle2; var clientID = sandpCompteurVisites[0].ClientID //console.log('cle_1 => ', cle_1); //console.log('cle_2 => ', cle_2); //console.log(sandpCompteurVisites); //Récupère la classe de l'id "conteneur", créer ou met à jour le localStorage puis envoi la classe (correspondant à la page) dans le body de la requête envoyé à NodeJS function numberChangeGET(){ //Si aucune page n'a encore été créer dans le localStorage, créer la variable hasVisited avec la première page visité if(new Map(JSON.parse(localStorage.getItem('hasVisited'))).get(cle_1) == undefined && cle_1 != undefined && cle_2 != undefined){ listHasVisited.set(cle_1, [cle_2]); localStorage.setItem('hasVisited', JSON.stringify(Array.from(listHasVisited))); // document.write('Bienvenue ! (compteur +1)'); // document.write('

clé 1 : '+cle_1); // document.write('
clé 2 : '+cle_2); snpCounterVisit(); } //Sinon, on met à jour le hashmap en ajoutant la classe au tableau des classes stocké à la clé contenu dans cle_1 else if (!new Map(JSON.parse(localStorage.getItem('hasVisited'))).get(cle_1).includes(cle_2) && cle_1 != undefined && cle_2 != undefined){ //Ajoute la page à la liste des pages visités, puis le stock à nouveau dans le localStorage var classArray = new Map(JSON.parse(localStorage.getItem('hasVisited'))).get(cle_1) classArray.push(cle_2); listHasVisited.set(cle_1, classArray); // // document.write('Bienvenue ! (compteur +1)'); // document.write('

clé 1 : '+cle_1); // document.write('
clé 2 : '+cle_2); localStorage.setItem('hasVisited', JSON.stringify(Array.from(listHasVisited))); //Affichage d'un message si la page n'a jamais été visité (optionnel) //Préparation et envoie de la classe concaténé ainsi que l'ID client au format d'objet à NodeJS snpCounterVisit(); } //Si la page à déjà été visité, on met un autre affichage ou on ne fait rien else { // document.write('Page déjà visité.'); // document.write('

clé 1 : '+cle_1); // document.write('
clé 2 : '+cle_2); //console.log('listHasVisited => ', listHasVisited); } } function snpCounterVisit() { var bodyElement = {cle_1: cle_1, cle_2: cle_2, clientID: clientID} fetch('https://devnode0.ingencys.net/snpVisitCounter/update', { method: 'POST', body: JSON.stringify(bodyElement) }) .then(function(response) { return response.text(); }) .then(function(data) { // document.write('

Total : '+data); }); }