@tester_toster

Прерывание ajax запроса, возвращение назад по истории браузера. Кто идиот — заказчик или программист?

Добрый день.
Есть cms, для cms есть компонент магазина, у которого есть корзина хранящаяся в _SESSION.
Корзина с заказом находится на 1й странице. Все работает через ajax.
В зависимости от введенного номера - от суммы прошлых покупок + текущей покупке по независимой таблице считается скидка.
Так-же есть методы доставки - в разных методах в зависимости от разной суммы разная цена, разные методы оплаты зависящие от методов доставки.
Все состояния пересчитываются, сохраняются при изменении любого элемента корзины (изменение количества, метода доставки, введенный номер, способа оплаты, уже заполненные поля и.т.д.).
Сделал все в стандартной корзине. При изменении количества или другом действии на сервер отправляется запрос, приходит ответ с новыми состояниями элементов и отрисовывается через js + разные подсказки: до такой-то скидки осталось столько-то, текущая скидка, до бесплатной доставки столько-то и.т.д.
Все проверено, все работает.
Но в браузере safari заказчик обнаружил такой баг:
кликает на изменении количества и резко на сам товар, то есть, переходит на страницу товара (между действиями не проходит и 1с - элементы находятся рядом), потом нажимает в браузере на кнопку назад и без перезагрузки попадает в корзину. А там показываются неправильные значения. Но если вместо кнопки назад нажать икону корзины или потом обновить страницу или сделать тоже самое в любом другом браузере, то данные будут правильными, так как запрос ушел - не успел прийти ответ, данные не отрисовались и при нажатии на кнопку назад открывается страница из кэша, а не загружается новая.
Мое мнение: это не баг, так как даже если пользователь будет переходить из товара в корзину и обратно по истории он не будет кликать по элементам как будто в эпилептическом приступе и запрос успеет уйти и приидти, но сделал вставку на js, хотя это не очень логично, но клиента, вроде, устроило.

Хочу узнать мнение со стороны, может можно сделать как-то правильнее и я зря плохо думаю о заказчике?
  • Вопрос задан
  • 626 просмотров
Решения вопроса 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
так как запрос ушел - не успел прийти ответ, данные не отрисовались и при нажатии на кнопку назад открывается страница из кэша, а не загружается новая.
порядок событий должен быть соблюдён!
Это в явном виде проблемы кодера => нужно исправлять свои ошибки!
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы