#jquery #plugins
#jquery #Плагины
Вопрос:
Какой считается лучшим способом устранения неправильного использования плагина jQuery — игнорировать или выдавать ошибку? В ситуации, с которой я работаю, у меня есть плагин, который привязывает некоторые функциональные возможности к изображению. После привязки вы можете выполнять некоторые другие действия с помощью методов, например, устанавливать или получать информацию о состоянии, которая может быть изменена при взаимодействии с клиентом, например:
$('selector').myPlugin();
$('selector').myPlugin('some-method',data);
Что следует делать, когда:
- селектор не содержит соответствующих элементов (подозреваю, что ответ на это — ничего, ошибки нет)
- метод, который имеет отношение только к ранее привязанному элементу, применяется к селектору без соответствующих элементов
- метод содержит недопустимые данные параметра
Я чувствую, что в некоторых случаях правильно просто игнорировать все, что недопустимо или не применяется, и продолжать без ошибок. Большая часть «способа jQuery» заключается в том, чтобы действовать максимально предсказуемым образом, что для меня означает: не прерывайте работу, если в этом нет необходимости.
С другой стороны, это усложняет отладку, поскольку вы никогда не получите никаких ошибок при выполнении действий, которые вы не должны делать. Иногда это может быть разумно (например, применение плагина к набору элементов, для которых релевантно только подмножество). С другой стороны, выполнение таких действий, как попытка применить определенный метод к нерелевантному элементу или передача неверных данных параметра, может в долгосрочной перспективе вызвать больше проблем с игнорированием ошибок.
Есть ли какая-либо общепринятая точка зрения на этот счет? Добавить опцию «игнорировать ошибки»?
Ответ №1:
В пункте 1, если вы следуете шаблонам на этой странице http://docs.jquery.com/Plugins/Authoring, вы поступаете правильно. А именно это:
методы var = { инициализация: функция (параметры) {
return this.each(function(){
В пункте 3 игнорируйте имена параметров, которые вы не используете. Генерируйте исключение, когда они используют неверные данные в одном из ваших параметров. Я полагаю, что это остановит всю обработку совпадающих элементов в селекторе. Вы также могли бы предоставить режим отладки, в котором он будет генерировать исключение. Таким образом, они могут включать его во время тестирования и отключать, когда они запускаются в производство.
В пункте 2 я испытываю искушение сказать, придерживайтесь того, что вы выбрали из того, что я сказал для пункта 3. Если это что-то вроде получения данных, связанных с элементом, для которого не вызывался setXXXX, просто верните пустой набор данных.