Jump to content
Sign in to follow this  
sitecreator

jQuery новых версий (1.9, 1.10, 1.11 ...): у вас есть проблемы?

Recommended Posts

В  ocStore 1.5.5.1.2 (последней на данный момент) используется jQuery ветки 1.7.*

Знаю, что была попытка выдать релиз данной версии с новой библиотекой jQuery.

Но почему то отказались, какой то конфликт был.

 

В недрах форума об этом уже писали.

 

Для меня это пока загадка, т. к. еще два года назад я уже использовал версию 1.9 для front-end-а.

Да, пришлось вместе с новой версией jQuery установить и другие библиотеки поновее, но в целом код js я не менял.

 

Сейчас я хотел бы все новые проекты делать только на новых версиях jQuery.

Т. к. в них учтены особенности новых браузеров и, самое главное, особенность планшетов и смартфонов, в том числе на windows 8 и windows phone.  Я думаю, что специалисты знают, что событие touchstart (прикосновение к сенсорному экрану) важно правильно распознавать и обрабатывать.  К сожалению, internet explorer даже 11-й версии не придерживается рекомендаций W3C, поэтому важно использование jQuery последних версий, если вы, конечно, желаете делать различия между событиями mouseover, click и touchstart.  Большинство разработчиков, правда, вообще в своих темах/шаблонах и модулях для front-end-а не заморачиваются этим вопросом.

 

Так почему же отказались в последней сборке ocStore от новой версии jQuery?

С чем несовместимость?

И почему это оказалась "неразрешимая" задача?

  • +1 1

Share this post


Link to post
Share on other sites

Нельзя, так как ВСЕ модули пишутся с использованием 1.7 и если вы установите 1.9 то может быть куча конфликтов. 
Например вот сегодня столкнулся при переносе модуля на opencart 2.0, .live не работает, уже вместо него .on и таких нюансов может быть очень много. 

Самостоятельно установить себе новую версию вы конечно можете, взяв на себя все проблемы потом, но добавлять это в релиз ocstore нельзя. 

Share this post


Link to post
Share on other sites

Нельзя, так как ВСЕ модули пишутся с использованием 1.7 и если вы установите 1.9 то может быть куча конфликтов. 

 

 

разве jquery-migrate не помогает?

которая как раз таки и сглаживает нюансы.

 

У меня не было проблем с модулями (благодаря jquery-migrate), потому и спрашиваю.

Пожалуйста, приведите пример несовместимых модулей. Интересно потестировать.

 

Вообще, это мрак какой-то использовать библиотеки 3-х и 4-х летней давности.

 

На крайний вариант, конечно, можно использовать две библиотеки jQuery одновременно: старую для старых модулей  и новую для новых.

Что собственно я и делал иногда.  Но иметь зоопарк jQuery в одном проекте - это как то некошерно совсем.

Share this post


Link to post
Share on other sites

(для разработчиков), все равно пишите хотя бы под 1,9, вторая версия не всем подойдет. Вы хоть понимаете различия между 1,9 и 2,0?

Share this post


Link to post
Share on other sites

Собственно необходимость возникла не ради самого "обновления", т. е. это не самоцель.

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

 

вторая версия не всем подойдет.

Не достает поддержки ie6...ie8?

По мне, так это только плюс. не поддерживаю я ie8.

впрочем, меня вполне устраивает ветка 1.11. на 2-ю пока не переходил.

Share this post


Link to post
Share on other sites

Нельзя, так как ВСЕ модули пишутся с использованием 1.7 и если вы установите 1.9 то может быть куча конфликтов. 

Например вот сегодня столкнулся при переносе модуля на opencart 2.0, .live не работает, уже вместо него .on и таких нюансов может быть очень много. 

Самостоятельно установить себе новую версию вы конечно можете, взяв на себя все проблемы потом, но добавлять это в релиз ocstore нельзя. 

Уже года три пишу JS

if ($.isFunction($.fn.on)) {
..on(
} else {
..live(
}

И не встречал "не совместимость" со своим кодом jquery 1.7 или 2.x

Или просто привык уже так писать :)

 

Да и в других JS (сторонних), которые идут с модулями тоже не заметил "не совместимости". Все отлично работает на 1.7.x и 2.x (правда с jquery 1.6.x никто не хочет работать)

Share this post


Link to post
Share on other sites

Использую нужную мне версию (для 1.5.x новее, чем стоковая, для 2.0.x - старее) вместе с jQuery.noConflict

Share this post


Link to post
Share on other sites

если модуль использует плагины из jquery UI, то jquery-migrate не поможет

Share this post


Link to post
Share on other sites

если модуль использует плагины из jquery UI, то jquery-migrate не поможет

 

Много ли таких дополнений?

 

Я ставил свежий jQuery, соответственно и свежий jquery UI, плюс  jquery-migrate, плюс свежий color-box и еще соответствующие обновления. Конфликтов не обнаружил.  Разумеется, что все на свете дополнения не тестировал.

 

Мне кажется довольно странным подход, когда программист в свежих модулях (а все популярные регулярно обновляются) используют подход, ориентированный исключительно на библиотеки многолетней давности, которые вообще не учитывают особенности тех же тачскрин планшетов.  Такое впечатление, что живем в мире исключительно десктопов.

 

Почему бы программистам не использовать универсальный подход, когда выходной код будет совместим с разными версиями jQuery, а не только древними?

 

Уважаемый markimax использует же такой подход, и успешно.

 

Share this post


Link to post
Share on other sites

Просто сейчас проделал большую работу по тестированию поведения браузеров в различных тачскрин- планшетах и был весьма удивлен различному поведению одних и тех же браузеров на разных платформах.  Например, firefox 37 на android платформе генерирует touch-events (touchstart, например), но тот же firefox 37 на планшете с windows 8.1 не генерирут данное событие (только mousedown), приходится использовать нестандартный mozInputSource.  Хотя Chrome 41 как на андроиде, так и на windows 8.1 отлично поддерживает touchstart.  Кроме того одинаковые браузеры совершенно ведут себя по разному при использовании zoom-а на тачскрин-девайсах.  На андроиде при увеличении (zoom пальцами) происходит просто масштабирование страницы с появлением "полос прокрутки", а на windows 8.1 происходит изменение viewport-а, т. е. никаких полос прокрутки не возникает, а происходит подстраивание страницы адаптивного сайта под новый viewport.

 

И огромное количество дополненией (всякие меню "мега" и "супер пупер") либо просто отвратительно работают на тачскрин-девайсах, либо ими вообще нельзя пользоваться.  Хорошо бы на это обратили внимание разработчики.  Я вообще не вижу смысла делать красивые меню, ориентированные на испольование наведения мышки и использование при этом эффекта jquery UI (разумеется из старой коллекции).  Все это невозможно пользователю оценить на планшете! Это вообще не работает на нем.

 

Share this post


Link to post
Share on other sites

Я вообще не вижу смысла делать красивые меню, ориентированные на испольование наведения мышки и использование при этом эффекта jquery UI (разумеется из старой коллекции).  Все это невозможно пользователю оценить на планшете! Это вообще не работает на нем.

что такое планшет? - мобильное устройство! (неожиданно, да?)

так с чего это ты решил предъявлять претензии разработчикам, а не заказчикам за отсутствие бюджета для создания мобильной версии сайта? :?

Share this post


Link to post
Share on other sites

речь не только о меню jquery UI, в этой библиотеке много элементов, dialog например или slider.

 

вопрос в том, что после замены версии jquery и подключения migrate что-то может отвалиться. а кто это будет чинить?

автор модуля скажет "я использовал функции движка и не думал о том что кому-то взбредет в голову отключать скрипты с которыми работает мой модуль"

а у автора шаблона, обновившего jquery хватит знаний понять и починить проблему?

 

может возникнуть предложение не использовать javascript библиотеки, которые поставляет двиг, а добавлять каждый раз свои. но в этом случае магазин может превратиться в зоопарк с кучей разных "своих" colorbox-1.3.4 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Similar Content

    • By Dragon
      jQuery async load
      Скачать/Купить дополнение Модуль позволяет переместить javascript-скрипты из шапки в подвал сайта и подгружать их асинхронно, тем самым ускорить отрисовку страницы, увеличить баллы в Google Pagespeed и повысить ранжирование в поисковой выдаче.

      Важно: модуль распространяется по принципу – одна лицензия на один домен.
       
      С его помощью можно добиться 100/100 баллов в Google PageSpeed Insights. Но только если вы выполнили все рекомендации Google PageSpeed Insights, кроме пункта "Удалите код JavaScript и CSS, блокирующий отображение верхней части страницы". В противном случае результат может быть всего на пару процентов лучше. 
      Демо: https://matuvi.com/oc2/async/


       
      Внимание. На демо помимо самого модуля оптимизированы изображения и включен кэш (не входит в модуль). 

      Протестировано на версиях OpenCart/ocStore 2.0.1.1, 2.1.0.2 и 2.3.0.2.3 на стандартных шаблонах со стандартным набором модулей.
      Автор модуля не гарантирует стабильную работу со сторонними плагинами и шаблонами.

      Теоретически модуль будет работать и на других версиях и сборках (пока кроме 3+).
      Если самостоятельно модуль установить не удалось: пишите в тему поддержки - поможем настроить.
      Добавил Dragon Добавлено 22.01.2018 Категория Кэширование, сжатие, ускорение Системные требования Сайт разработчика https://matuvi.com/ Метод активации Без активации Ioncube Loader Нет OpenCart 2.3
      2.2
      2.1
      2.0 ocStore 2.3
      2.2
      2.1 OpenCart.Pro, ocShop Не проверялось Обращение к серверу разработчика Нет Старая цена  
    • By comers
      Привет!
      Стоит задача показывать корзину в шапке, если товар добавлен в нее или скрывать, если она пустая. Добавление класса к #cart после php-проверки не вариант, т.к. надо корзину показывать сразу после первого клика на кнопку Купить. Единственный правильный способ - дописать ajax, который добавляет товар в корзину, а именно в cart.tpl. Я пробовал добавить в common.js в функцию
      'add': function(product_id, quantity) { после 
      success: function(json) {  команду 
       
      $('#cart').addClass('block');  но она не срабатывает. Что я делаю не так?
       
    • By Kingfrelance
      Добрый день 
      вот сайт
      http://088.cafe
      Кнопка добавить в корзину не работает в консоли ошибка
      jquery-2.1.1.min.js:4 POST http://088.cafe/ajax.php?do=addcart 404 (Not Found) Работает кнопка только в модуле рекомендуемые, это на главной - где вкусная пицца .. но ошибка в консоли все равно есть.
    • By Dragon
      Модуль позволяет переместить javascript-скрипты из шапки в подвал сайта и подгружать их асинхронно, тем самым ускорить отрисовку страницы, увеличить баллы в Google Pagespeed и повысить ранжирование в поисковой выдаче.

      Важно: модуль распространяется по принципу – одна лицензия на один домен.
       
      С его помощью можно добиться 100/100 баллов в Google PageSpeed Insights. Но только если вы выполнили все рекомендации Google PageSpeed Insights, кроме пункта "Удалите код JavaScript и CSS, блокирующий отображение верхней части страницы". В противном случае результат может быть всего на пару процентов лучше. 
      Демо: https://matuvi.com/oc2/async/


       
      Внимание. На демо помимо самого модуля оптимизированы изображения и включен кэш (не входит в модуль). 

      Протестировано на версиях OpenCart/ocStore 2.0.1.1, 2.1.0.2 и 2.3.0.2.3 на стандартных шаблонах со стандартным набором модулей.
      Автор модуля не гарантирует стабильную работу со сторонними плагинами и шаблонами.

      Теоретически модуль будет работать и на других версиях и сборках (пока кроме 3+).
      Если самостоятельно модуль установить не удалось: пишите в тему поддержки - поможем настроить.
    • By Aky
      Как передать POST параметр через ajax в файл controller модуля OpenCart ?
       
      Есть модуль "latest"  Файл контроллера latest.php, нужно передать туда параметр width через Ajax/Jquery  
       
      Как обратится к этому файлу? 
       
      Как работать с Ajax знаю, как параметры передать знаю, как принять знаю, но как обратится к нужному файлу в OpenCart?
       
      При попытках обращения по "url:' скрипт выдает ошибку  "404 (not found)"
       
      Пробовал вот так:
      url: 'index.php?route=extension/module/latest',  url: 'index.php?route=module/latest',  url: '/catalog/controller/extension/module/latest',   
      Если перейти на прямую по ссылки: "/catalog/controller/extension/module/latest.php"  выдает ошибку HTTP ERROR 500
  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.