Как сохранить результат выполнения js кода после перезагрузки страницы?

У меня есть 2 кнопки, которые переключают видимость каталога из формата плитки в список и наоборот. Сейчас, когда перезагружается страница браузера(например переход на 2 страницу каталога) или когда применяются Ajax фильтры и они обновляют содержимое страницы, то каталог всегда возвращается в изначальное положение. Как мне сделать так, что бы выбор посетителя сохранялся?

function btnTiles(){
    const productList = document.querySelector('.catalog>#product__list');
    productList.classList.remove('product__list');
    productList.classList.add('product__tiles');
    
    localStorage.setItem("myKey",JSON.stringify(productList));
}

function btnList(){
    const productList = document.querySelector('.catalog>#product__list');
    productList.classList.add('product__list');
    productList.classList.remove('product__tiles');
}


Ответы (1 шт):

Автор решения: ioszhuk

Используйте вместо localStorage - sessionStorage или cookies.

Вот примерно то что Вам должно подойти.

function btnTiles() {
    const productList = document.querySelector('.catalog>#product__list');
    productList.classList.remove('product__list');
    productList.classList.add('product__tiles');
    sessionStorage.setItem('myKey', 'tiles_view');
}

function btnList() {
    const productList = document.querySelector('.catalog>#product__list');
    productList.classList.add('product__list');
    productList.classList.remove('product__tiles');
    sessionStorage.setItem('myKey', 'list_view');
}

// запускать при загрузке страницы
function initBtnView() {

    const view = sessionStorage.getItem("myKey")
    
    if(view === 'tiles_view') {
      btnTiles();
    } else if(view === 'list_view') {
      btnList();
    }
    
}

→ Ссылка