C'est parce que chaque fois que vous rafraîchissez votre page, votre code se réinitialise. Pour que les données persistent, vous devez les stocker quelque part. Soit dans un cookie, soit dans un stockage local.
Si vous optez pour le stockage local, voici comment procéder.
var bannerViewCount = localStorage.getItem('bannerViews');
if(!bannerViewCount) {
bannerViewCount = 0;
}
function addViews() {
localStorage.setItem('bannerViews', ++bannerViewCount);
document.body.innerHTML = 'Banner view count is :' + bannerViewCount;
}
addViews();
Démo (cliquez plusieurs fois sur Exécuter dans la barre supérieure et vous le verrez s'incrémenter)
Ici, ce que je fais, c'est d'abord récupérer le nombre de vues des bannières. Si je ne l'ai pas, je l'initialise à zéro.
Plus tard, j'ai addViews()
j'incrémente l'appel bannerViewCount
par un et le stocker dans le localStorage
. C'est tout.
Notez que les données sont stockées dans votre espace de stockage local. Si vous souhaitez que le compte soit également visible par les autres utilisateurs, vous devez le stocker dans une base de données ou un fichier texte et l'analyser ultérieurement.
Si vous voulez le stocker sur le nuage, afin de pouvoir partager le compte entre les visiteurs, vous pouvez procéder comme suit.
function addViews() {
$.get('//jsonbin.io/b/5974382ca489d40388582791/latest', function(data) {
var bannerViewCount = data.bannerviews;
$.ajax({
url: '//jsonbin.io/b/update/5974382ca489d40388582791',
type: 'post',
dataType: 'json',
data: {
snippet: JSON.stringify({
bannerviews: ++data.bannerviews
})
},
success: function(fetch) {
var data = fetch.data;
document.body.innerHTML = 'Banner view count is : ' + JSON.parse(data).bannerviews;
}
});
});
}
addViews();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Cliquez sur "Exécuter l'extrait de code" et voyez le compteur s'incrémenter. Passez à n'importe quel autre navigateur et le compteur persistera comme prévu. Notez que les données stockées ici peuvent être manipulées car il n'y a pas d'authentification en place. Évitez donc cette méthode si vous voulez que le compte soit précis et légitime.