Я работаю над проектом глобализации веб-сайта, в котором мы (поставщик) попросили наших клиентов вставить тег сценария на свой домашний/начальный сайт. Тег сценария необходим, чтобы помочь нашим клиентам стать глобальными, а часть решения воплощает пользовательский интерфейс, который запускается на основе определенных критериев конечного пользователя.Управление сторонними библиотеками javascript с пакетом jQuery
Пользовательский интерфейс построен с помощью jQuery, который мы действительно не можем ожидать, чтобы наши клиенты вставляли на свои страницы, не говоря уже о несоответствиях версии, будет трудно решить. Поэтому наша сторонняя библиотека загружает собственную версию jQuery, хотя имена по-разному распределяются во избежание конфликтов.
Однако такой механизм требует от нас переименовать все экземпляры jQuery в нечто, что поможет нам избежать столкновений имен с другим экземпляром jQuery (если имеется) и делает очень сложным наше искаженное jQuery (MY_Query в примерах ниже) управлять, не говоря уже об обновлении.
Например
jQuery = window.jQuery = window.$ = function(selector, context) {
// The jQuery object is actually just the init constructor 'enhanced'
return new jQuery.fn.init(selector, context);
},
.
.
.
jQuery.fn = jQuery.prototype = ...
становится
MY_JQuery = window.MY_JQuery = window.MY_Q = function(selector, context) {
// The MY_JQuery object is actually just the init constructor 'enhanced'
return new MY_JQuery.fn.init(selector, context);
},
.
.
.
MP_JQuery.fn = MP_JQuery.prototype = ...
В идеальном мире, и нас, и клиент будет иметь одну версию JQuery на сайте, и мы должны использовать его для нашего преимущество. Но это означало бы, что обновление jQuery потребует тяжелого тестирования с обеих сторон (в то время как измененная версия jQuery содержится), и что любой желаемый плагин потребует от клиента добавления соответствующих тегов скриптов на их сайт, стимулируя политические дебаты между двумя сторонами на каких версиях побеждает.
Итак, могу ли я управлять нашей версией jQuery (с плагинами) на клиентском сайте без переименования всех экземпляров jQuery с чем-то вроде MY_Query с ограничениями, упомянутыми выше?
Почему бы не связать с библиотеками код JQuery Google, вы все будут иметь ту же версию и никогда не нужно их модернизировать, просто мысль. – brett
довольно сложно убедить клиента сделать это. Кроме того, могут быть юридические причины, по которым клиент отклонил это предложение. –