2016-03-09 2 views
0

Для жизни меня я не могу понять это гррр и интересно, если кто-то может помочь ...Использование LocalStorage для PAGECOUNT хитов

Мой сын делает некоторые HTML домашнее задание. Мы пытаемся установить счетчик страниц, который будет подсчитывать и отображать количество обращений к странице. У него есть индекс и три другие страницы. Я поставил это на каждой странице:

<div class="page-count"> 
    <script type="text/javascript"> 
     if (localStorage.pagecount) 
     { 
     localStorage.pagecount=Number(localStorage.pagecount) +1; 
     } 
    else 
     { 
     localStorage.pagecount=1; 
     } 
    document.write("You've had "+ localStorage.pagecount + " hits."); 
    </script> 
</div> 

Проблема заключается в том, что рассчитывает все хиты вместе, а не сколько хитов на странице ... как я мог получить это рассчитывать хиты на одной странице, а не сколько Всего хитов?

Заранее спасибо.

+0

как насчет сохранения отдельных счетчиков? то есть 'localStorage.page1.pagecount, localStorage.page2.pagecount' и т. д. - каждый HTML-файл будет загружать и хранить другую переменную в/из localstorage – ochi

ответ

1

Поскольку localStorage работает на всех страницах под тем же доменом, они будут подсчитывать одинаковый номер.

Если вы хотите, чтобы отличить их можно попробовать что-то вроде этого:

var url_segment = window.location.href.split('/'); 
var script_name = url_segment[url_segment.length - 1]; 
if (localStorage[script_name]) { 
    localStorage[script_name] = parseInt(localStorage[script_name]) + 1; 
} 
else { 
    localStorage[script_name] = 1; 
} 

document.write("You've had "+ localStorage[script_name] + " hits."); 

Обратите внимание, что я не хочу, чтобы использовать весь путь, как мой ключ, только мое имя сценария. Скорее всего, вы можете использовать весь путь, я просто подумал, что это красивее.

2

localStorage является доменом и его значения разделяются по всему сайту, а не только одной странице на этом сайте. Значения localStorage также хранятся только в браузерах пользователей, а не на сервере, на котором размещен ваш сайт. Помните об этом, если вы создаете счетчик страниц.

Если вы используете localStorage, чтобы сохранить счет, вы будете следить за количеством посещений конкретного пользователя на этой странице с определенного компьютера.

Если это действительно функциональность, которую вы ищете, вы можете заставить ее работать, предоставив каждой отдельной странице отдельный ключ в объекте pagecount.

Что-то вроде:

// If this is the first time someone has visited your site, you want 
// to check to see if pagecount has been defined. If not, define the pagecount object. 
!localStorage.pagecount ? localStorage.pagecount = {} : ''; 

var currentPage = window.location.href; 
if(localStorage.pagecount[currentPage]){ 
    localStorage.pagecount[currentPage] = Number(localStorage.pagecount[currentPage]) + 1; 
} 
else{ 
    localStorage.pagecount[currentPage] = 1; 
} 

выше дает ваш pagecount объект ключ для каждой страницы, которая существует на вашем сайте.

Смежные вопросы