Кеширование - быть или не быть

S

SlaSoft

Maestro
#1
Имеем тройку
Заходим на главную.
Затем в товар
Делаем покупку
НАЗАД - корзина пуста


Имеем двойку
Заходим на главную.
Затем в товар
Делаем покупку
НАЗАД - в корзине есть товар

Вот собственно и проблема..

И тут опрос
Напишите как должна вести себя в таком случае система.
Правильно ли она вела(ведет) себя на двойке
Правильно ли она ведет себя на тройке

Задавая єти вопросы, я уже знаю решение.
Но мне интересно ваше мнение и обсуждение.
 
yura_co

yura_co

master
#2
@SlaSoft, по идее правильное решение когда при откате назад всё будет откатываться назад, но при этом теряется клиент который не понимает что делает, получается нужно делать неправильно и оставлять товар в корзине, ибо некоторые клиенты просто не знают как вернуться в категорию кроме как стрелочкой "назад".
 
Baco

Baco

architect
#3
чисто потребительский ответ:
если я нажал кнопку купить (для примера, поиске ответов 2020 к ЗНО при покупке по предметам или той же марки авто, при поиске аккумулятора), то при уведомлении, что товар в корзине (блоки на добавление могут быть разные,от минимальной суммы, до выбора размера\опции\регистрация...)
- он находился все время заполненным и если я решил залогиниться, то сохранить данные корзины под текущего пользователся в уже авторизированном кабинете, с сохранением истории товаров (отдельно просмотренные тоже).
примерно так перефразирую пожелания при комфортном ПФ

лично мое мнение: поставить обработчик на рефа и уже на него редиректить, так бы корректнее было
 
Останнє редагування:
OP
S

SlaSoft

Maestro
Thread Starter #4
@SlaSoft, по идее правильное решение когда при откате назад всё будет откатываться назад, но при этом теряется клиент который не понимает что делает, получается нужно делать неправильно и оставлять товар в корзине, ибо некоторые клиенты просто не знают как вернуться в категорию кроме как стрелочкой "назад".
Т.е. не обновлять страницу при НАЗАД

Но какже?

Я же положил в корзину а там пусто!

примерно так перефразирую пожелания при комфортном ПФ
М.. это не вопрос о регистрации
А именно о кнопке НАЗАД ( или я не понял твоего ответа)
 
Baco

Baco

architect
#5
по ответу, то лучше данные сохранить в сесии, с записью на сторону клиента, а не сервера, напр. в печеньки или локалсторедж или тот же фаербейс, главное чтобы у него была пометка и обрабатывать корректно HTTP_REFERER, а на стороне сервера все можно логгировать, была бы логика.
 
Останнє редагування:
Baco

Baco

architect
#8
кілька раз перечитував, все ж правильною була б логіка з 2-ки, та тут підтримаю @ALarik, бо відсоток - не досить великий тих, хто так зробить, а сам факт наявності товарі в сессійному блоці - реалізовано, чисто незручна дрібничка, котра при window.history.back() - дає порожній варіант "міні-корзини"
 
ALarik

ALarik

expert
#9
@SlaSoft , а какая цель топика ? расскажи и нам немного таинственной инфы, может ченить и возьмем на вооружение (^|^)
 
OP
S

SlaSoft

Maestro
Thread Starter #10
Код:
    <file path="catalog/controller/startup/session.php">
        <operation>
            <search><![CDATA[setcookie($this->config->get('session_name')]]></search>
            <add position="before"><![CDATA[
$this->response->addHeader('Expires: Thu, 19 Nov 1981 08:52:00 GMT');
$this->response->addHeader('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
$this->response->addHeader('Pragma: no-cache');
            ]]></add>
        </operation>
    </file>
    <file path="admin/controller/startup/startup.php">
        <operation>
            <search><![CDATA[index(]]></search>
            <add position="after"><![CDATA[
$this->response->addHeader('Expires: Thu, 19 Nov 1981 08:52:00 GMT');
$this->response->addHeader('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
$this->response->addHeader('Pragma: no-cache');
            ]]></add>
        </operation>
    </file>
Цель топика - сделать решение
 
ALarik

ALarik

expert
#11
насколько я вижу, то добавление в заголовок, при ответе сервер--клиент данных об отмене кэширования, вернее просчету его невалидным, но зачем ? если с 301 редиректом - понятно (кэширует резалт), то тут зачем ? что в итоге получим, если каждый раз в стартапе будет срабатывать такая вот "система некэширования" ?
 
OP
S

SlaSoft

Maestro
Thread Starter #12
Потому что так работает двойка


Потому как админку нельзя кешировать
Даже по кнопке назад
 
Зверху