Показать сообщение отдельно
  #1 (permalink)  
Старый 27.12.2022, 11:32
Аспирант
Отправить личное сообщение для dasha862 Посмотреть профиль Найти все сообщения от dasha862
 
Регистрация: 31.03.2016
Сообщений: 36

Некорректная запись первых ячеек в cookie
Здравствуйте.

Скрипт последних просмотренных пользователем страниц. Добавляет id страниц в куки.

<script>
$(document).ready(function() {
	var pageid = {%$page%};
    var view = $.cookie('lastpage');
    $.cookie('lastpage', view, { expires: 60, path: '/' });
    if (!view){
		view = [];
	} else {
		view = view.replace(/(^,)|(,$)/g, '');
		var idArray = view.split(',');
		if(idArray.length > 10){
			idArray.shift();
			view = idArray.toString();
		}
	}
	if (view.indexOf(pageid) === -1) {
        if (view) {
            view += ',' + pageid;
        } else {
            view = '' + pageid;
        }
        $.cookie('lastpage', view, { expires: 60, path: '/' });
    }
});
</script>


Суть проблемы, первые 2 просмотренные страницы некорректно записываются в ячейки (46 - id первой просмотренной страницы, 29 - второй, 5 - третьей):
lastpage:Object
:"46"
lastpage:Object
46:"29"

И только начиная с 3 страницы ячейки начинают записываться корректно:
lastpage:Array
1:"46"
2:"29"
3:"5"
length:3

Из-за некорректной записи первых двух ячеек, некоторые страницы с id: 4,6,2,9 в куки не записываеются, т.к. браузер считает что они уже записаны(просмотрены).
Подскажите, пожалуйста, где я ошиблась и как исправить.
Изображения:
Тип файла: png 1.png (3.6 Кб, 1 просмотров)
Тип файла: png 2.png (3.8 Кб, 1 просмотров)
Тип файла: png 3.png (4.4 Кб, 1 просмотров)
Ответить с цитированием