Пользователи интернета нередко открывают различные товары из одного магазина Shop-Script в нескольких вкладках браузера, просматривая их и добавляя в свою корзину.
Если покупатель добавляет товар в корзину в одной из вкладок и затем переключается на другую, информация о содержимом корзины в верхней части страницы не обновляется. Это может вызвать недоумение у посетителей, так как они точно знают, что положили что-то в корзину.
Подобная ситуация повторяется, когда пользователь добавляет товар в корзину и использует кнопку "Назад" в браузере. В большинстве случаев корзина не обновляется, даже когда пользователь находится на странице корзины в различных темах дизайна.
Это создает путаницу и может негативно сказаться на общем пользовательском опыте, так как клиенты не могут быть уверены, что их выбор учтен. Поэтому важно обеспечить правильное обновление информации о содержимом корзины, чтобы избежать таких ситуаций.
// Позволяет обновлять счетчик открытых вкладок, страниц из кэша async function getCartCount(counter) { const response = await fetch('/cart/save/'); const {data, status} = await response.json(); const $cart = $(counter).closest('.cart-block'); if (status == 'ok') { localStorage.setItem('cartcounter', data.count); $(counter).text( data.count ); $cart.toggleClass('empty', data.count == 0); } } $(document).ready(function () { // вызываем счетчик корзины window.addEventListener('storage', event => { if (event.key != 'cartcounter') return; getCartCount('.js-cart_count'); }); getCartCount('.js-cart_count'); });