Перейти к содержимому


Фотография
- - - - -

Ошибка в скрипте корзины на iOS-устройствах


  • Закрытая тема Тема закрыта
Сообщений в теме: 10

#1 alexey

alexey

Отправлено 30 October 2012 - 03:52

Приветствую!

Есть проблема со скриптом корзины, возникает на iOS-устройствах, iPhone и iPad (пока проверял в iOS 6 в родном Safari).

Проблема заключается в следующем:

  • При нажатии на кнопку «Добавить в корзину» обновляется содержимое модуля корзины
  • Потом нажимаем кнопку Удалить из корзины.
  • Опять нажимаем кнопку «Добавить в корзину» — модуль не обновляется и пишет что корзина пустая. При переходе на другие страницы корзина остается пустой.

Мной лично протестировано на моем сайте и на вашем демо сайте — проблема воспроизводится как на реальных устройствах, так и в эмуляторе XCode.
На десктопных браузерах такой проблемы не замечаю, в том же Safari на PC и Mac все отлично.


Могу помочь в профилировании проблемы, но пока даже не знаю в какую сторону копать.
Надеюсь на вашу помощь.
  • 0

#2 SmetDenis

SmetDenis

Отправлено 30 October 2012 - 17:10

К вашему сожалению, я не сторонник устройств от apple. Под рукой нет ничего похожего.
Можете включить режим разработчика и показать текст ошибки в консоли?
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#3 alexey

alexey

Отправлено 30 October 2012 - 17:15

В том и дело что ошибок никаких в консоли нет (тестировал в эмуляторе, там в Safari такой же инспектор как в Chrome).

Может быть проблема в задержке?
  • 0

#4 alexey

alexey

Отправлено 30 October 2012 - 18:06

Я протестировал корзину в iOS 5 версии - все работает отлично.
Проблема имеет место быть только в Safari iOS 6.

Случайно наткнулся на вопрос StackOverflow: http://stackoverflow...ng-ajax-results
Пишут что в Safari iOS 6 изменился механизм кэширования запросов, больше похоже на баг, а не фишку Safari.

Может быть эти проблемы связаны или нет?
  • 0

#5 SmetDenis

SmetDenis

Отправлено 30 October 2012 - 18:11

Возможно, не могу сказать вам ничего, пока сам не увижу.
Не скажите, где взять эмулятор ?
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#6 alexey

alexey

Отправлено 30 October 2012 - 18:19

Эмулятор можно запустить только в XCode, он работает в Mac OS X.
Mac OS X можно поставить через VmWare, желательно чтобы процессор поддерживал виртуализацию на аппаратном уровне.
  • 0

#7 SmetDenis

SmetDenis

Отправлено 30 October 2012 - 18:26

Да. Так я и думал...

Тогда по быстрому у меня не получится посмотреть.
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#8 alexey

alexey

Отправлено 30 October 2012 - 18:34

А если расшарить виртуалку через VNC? Может такой вариант устроит?
  • 0

#9 SmetDenis

SmetDenis

Отправлено 30 October 2012 - 18:41

А если расшарить виртуалку через VNC? Может такой вариант устроит?

Хорошо. Давайте попробуем. Скидывайте доступ в личку форума.
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#10 alexey

alexey

Отправлено 30 October 2012 - 22:32

Мда, к сожалению с виртуалкой пока не получится, надо покопаться и придумать как дать доступ.

Но я решил проблему, варварским путем, и, скорее всего сделал это неправильно.
Как и писали на странице http://stackoverflow...ng-ajax-results
проблема заключается в том что iOS 6 кэширует POST-запросы.

Я соответственно изменил скрипты кнопок, чтобы запросы принудительно не кэшировались:

В файле: /media/zoo/applications/jbuniversal/elements/jbprice/tmpl/modal.php
$('.jsCartModal .jsAddToCartButton').click(function () {

    $.ajaxSetup({
        headers: { "cache-control": "no-cache" }
    });

...
});

И в файле /media/zoo/applications/jbuniversal/assets/js/jquery.jbzooprice.min.js


$(".jsRemoveFromCart", $obj).click(function () {              

    $.ajaxSetup({
        headers: { "cache-control": "no-cache" }
    });

...
});

После проделанных манипуляций корзина заработала как надо.
  • 0




Click to return to top of page in style!