Можно ли включать jQuery в плагин jQuery?

9

Вопрос о файле плагина jQuery, включающем библиотеку jQuery, вышел сегодня на stackoverflow, и я настоятельно рекомендовал не включать jQuery в плагин.

Я действительно не получил никакой поддержки от других в этом; на самом деле было больше поддержки, чтобы включить JQuery, чем нет. Это нормально или есть веские причины не делать этого? Я думаю, что это действительно плохая идея, так как я думаю, что разработчик должен использовать плагин в отношении того, какая версия jQuery используется.

mcgrailm
источник
Включить источник внутри файла или программно?
2
Насколько я могу судить, есть 3 ответа на вопрос, с которым вы связаны, ни один из которых не говорит ничего, кроме «Не делай этого! Но если бы ты сделал…», я бы не назвал эту поддержку включением jQuery. ,
Эд Джеймс
ИМХО, если вы даете решение, то поддерживаете его, вы не можете играть с обеих сторон забора. и если вы проголосуете за решение, то вы также говорите: «Я поддерживаю это»
mcgrailm
3
На самом деле, нет. Если вы голосуете за решение, вы говорите: «Это хороший ответ на вопрос ». ОП по этой теме не спрашивал, включать ли jQuery, он спрашивал, как, поэтому ответы, которые говорят ему, как хорошие ответы.
Эд Джеймс
@ Ред Вудкок: Думаю, нам придется просто не согласиться, но для меня хорошим ответом на «как» будет НЕ; Если вы думаете, что это не должно быть сделано
McGrailm

Ответы:

8

Я бы даже не подумал сделать это.

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

С другой стороны, часто люди используют такие вещи, как API Google или другой CDN, для доставки своих внешних библиотек JS, и в этом случае вы снова увеличиваете время загрузки своего сайта.

Что касается версии jQuery: если ваш плагин работает только на 1.5 (были некоторые изменения в мышлении типа attr () в 1.6, которые могли бы реально сломать вещи, поэтому я буду использовать 1.5 в качестве примера), вы должны сообщить об этом людям, но не заставляйте их использовать конкретную версию. Для всего, что вы знаете, они могут захотеть взять ваш плагин и расширить его, чтобы делать другие вещи, которые требуют 1.6. Конечно, им придется исправлять ошибки в базовом плагине, но что с того?

Эд Джеймс
источник
7

Первоначально у меня было два мнения об этом:

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

# 2 заставляет мою кожу ползать, поэтому он побеждает в споре.

Так что мой ответ - нет, все не в порядке. Выберите свои плагины, убедитесь, что они хорошо играют вместе на определенной версии jQuery и придерживайтесь ее .

Питер Роуэлл
источник
0

Точно нет! Это как включить автомобиль, когда кто-то покупает комплект шин.

Плагин - это дополнение к чему-то, а не его копия с дополнением.

Alexus
источник