Мы хотим перейти с одной версии jQuery на другую. Мы используем различные онлайн плагины и написали много наших собственных. Задача теперь состоит в том, чтобы попытаться МЕДЛЕННО МИГРАТЬ все ваши объекты сценариев МЕДЛЕННО без полной перезаписи. У меня есть идея, КАК справиться с этим:
НО У меня есть вопросы:
- Является ли идея ниже даже хорошей идеей?
- Могу ли я (напрямую) сообщить каждому объекту jQuery, где находятся зависимости?
- Если это плохая идея ... как ВЫ справляетесь с этим?
- Должен ли я просто переписать КАЖДЫЙ объект, который может сломаться при обновлении? (Ек!)
ОБЪЯСНЕНИЕ ВОПРОСА:
Если весь ваш плагин работает ТОЛЬКО в пределах одной страницы, то легко можно адресовать разные версии: просто включите файл на уровне страницы, а не на уровне главной страницы (дух!). Однако объекты, которые находятся на главной странице или в пользовательских элементах управления, немного сложнее ... поскольку для правильной работы им требуются определенные версии.
ЗДЕСЬ МОЯ ИДЕЯ:
Определение плагина начинается с анонимной функции.
(function ($){<!- code goes here -->})(jQuery);
Все зависимости, которые я видел, используют это как отправную точку.
Примеры:
jQuery-зависимости включают в себя плагины, такие как: ui.widget, ui.position, ui.core и т. д.
Так что, если я буду ссылаться на каждую версию jQuery (и ее зависимости), используя объект JavaScript, и передавать ЭТОТ ОБЪЕКТ в различные внутренние и онлайн плагины?
ССЫЛКИ ОБЪЕКТА МОГУТ БЫТЬ ТАКОВЫМИ:
var jQueryVersion1_3_2 = function(){<!- paste the files contents here-->};
var jQueryVersion1_4_4 = function(){<!- paste the files contents here-->};
ПЛАГИНЫ:
Мои собственные и онлайн плагины все еще могут быть включены как (нормальные) ссылки на файлы, но со следующими изменениями
ИДЕТ ОТ ЭТОГО:
// Plug-in X
(function ($){<!- its untouched code -->})(jQuery);
// Plug-in Y
(function ($){<!- its untouched code -->})(jQuery);
// Plug-in Z
(function ($){<!- its untouched code -->})(jQuery);
... версия - отстой!
ДО ЭТОГО ...
// Plug-in X
(function ($){<!- its untouched code -->})(jQueryVersion1_3_2);
// Plug-in Y
(function ($){<!- its untouched code -->})(jQueryVersion1_3_2);
// Plug-in Z
(function ($){<!- its untouched code -->})(jQueryVersion1_4_4);
... теперь мы можем улучшать наши объекты МЕДЛЕННО.
ЕДИНСТВЕННЫЙ ВЫПУСК, КОТОРЫЙ Я ВИДЮ:
Задача становится зависимостью плагина (между версиями). В тестовом обновлении следующее начало распространяться на различные плагины, например:
- ui.widget, ui.position, ui.core и т. Д. (Все сломалось после обновления).
Единственный ответ, который я вижу:
Упаковка jQuery и всех различных ссылок в одну функцию и сохранение THAT в указанной выше переменной. Затем передайте этот промежуточный объект в каждый плагин AS jQuery.
Помоги мне Оби-Ван Кеноби ... ты моя единственная надежда!