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

Рейтинг: 36.1092  
На голосовании
Предложил Пользователь 203730 27.05.2014 16:30:27

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

Битрикс регистрирует через CJSCore::RegisterExt библиотеку jquery. Соответственно ее можно и нужно использовать как зависимость во всяких component_epilog-ах и своих JS-библиотеках черзе CJSCore::Init

Говорить о том, что наврядли найдется сайт не использующий jquery, думаю не нужно.
Однако jQuery развивается и хочется идти вногу со временем. А для этого нужно периодически обновлять в ядре версию jQuery.

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

Ввиду этого - идея: всегда распространять с ядром все версии jQuery (хотя бы с точностью до второго числа версии) и дать возможность выбирать в настройках сайта/главного модуля какую версию регистрировать в CJSCore::RegisterExt под именем 'jquery'

Рейтинг: 0.2278  
Пользователь 10337 27.05.2014 21:31:15
Не обязательно в ядре все версии таскать. ни к чему это
Достаточно хотя бы переопределения на уровне ядра: эстетично, практично и демократично
Рейтинг: 0  
Пользователь 39858 04.06.2014 15:39:55
Из схожего, хотя часть в обратную сторону http://idea.1c-bitrix.ru/jquery-maintain-the-supply-of-old-major-versions/
Рейтинг: -0.2278  
Пользователь 39858 04.06.2014 15:40:02
дублепост
Рейтинг: 0.5303  
Пользователь 203730 23.06.2014 12:57:03
Евгений, не соглашусь с Вами.
Мы предлагаем разные решения. Если честно - ваше идет вразрез с моим.

1. Ничто не мешает вам самому наобъявлять нужных расширений JSCore и привязать к ним нунжые версии. Хоть модуль для МП выпустите. Проблема в том, что занято имя jquery и вот его переопределить не получится.

2. Вторая по счету, но не по значению причина: дублирование. Давайте представим себе типового разработчика, у которого какой-то шаблон компонента требует подключения jQuery. Что он должен написать? Или в шаблоне сайта нужно подключить jQuery.
Логично что написать нужно CJSCore::Init('jquery').

Если задавать имена как вы предлагаете - он может написать ту версию которая ему вроде как нужна. А в другом шаблоне другой разработчик напишет другую версию. И что имеем в итоге? А в итоге мы будем иметь 10 библиотек jQuery на странице, но разных версий. А это еще веселье с noConflict...

3. Ваше предложение зафиксировать 1.8 навсегда как базовую считаю в корне неправильным. Именно чтобы можно было сменить эту либу и затевалась идея. Не знаю как вас, а меня напрягает периодический warning от Chrome в консоли (...use preventDefault...) на jQuery 1.8


Резюмируя: суть идеи чтобы разработчик всегда использовал только CJSCore::Init('jquery'). А какая версия jQuery считается актуальной для проекта можно было указывать в настройках.