Нужно ли изучать методы JavaScript DOM для веб-разработки, теперь у нас есть jQuery и другие? - PullRequest
6 голосов
/ 05 декабря 2010

При наличии JQuery, нужно ли изучать прямое манипулирование DOM с помощью Javascript, чтобы стать профессиональным веб-разработчиком / создателем сайта / и т.д.

Это, вероятно, можно было бы спросить и в Prototype, MooTools и т. Д., Но я не знаком с ними, кроме их имен.

Ответы [ 5 ]

5 голосов
/ 05 декабря 2010

Примечание. Этот вопрос был перефразирован, поэтому мой ответ отражает первоначальный вопрос, но я продолжал добавлять.

Абсолютно .Jquery IS Javascript, и хотя он действительно абстрагирует многие кросс-браузерные расхождения в DOM, он все еще подвержен тем же точным ошибкам синтаксического анализа, недопониманию области действия и т. Д.

Использование jQuery без знания базовых знаний DOM или необходимых знаний Javascript - это то, что я считаю опасным, отчасти как предоставление очень мощного оружия ребенку, который просто может случайно выстрелить себе в ногу, не зная, как использовать такой мощныйинструмент правильным способом.

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

if ( $('a.current') == $('a.current') ) { }

, который вернул бы false, так как два уникальных объекта jQuery созданы.Если бы они знали, как получить ссылку на узлы DOM, они могли бы просто сделать $('#el')[0] == $('#el')[0].

Каждый раз, когда вы используете плагин jQuery и сталкиваетесь с каким-то таинственным поведением, без знания DOM вам в значительной степени приходится полагаться на кого-то другого, чтобы помочь вам.Разработчики, обладающие знаниями DOM, смогут лучше отлаживать и узнавать корень проблемы, поэтому вы только настраиваете себя на то, чтобы терять больше времени, ломая голову, ломая голову в земле jQuery.

Более того, если вы хотитекогда-либо достигать высокого уровня знаний, а не просто быть обычным разработчиком joe jQuery, ему очень понадобятся обширные знания о расхождениях в DOM и Javascript в целом, иначе вы значительно ограничите свой уровень навыков.

Если вы останетесь на Stackoverflow на некоторое время, вы увидите это в повседневных вопросах, в которых людям, которые воспользовались легким ярлыком, не хватает базовых знаний JS / DOM, необходимых для решения своих проблем.

2 голосов
/ 05 декабря 2010

Вы можете использовать такую ​​библиотеку, как jQuery, с небольшим знанием Javascript и почти без знания DOM, но это поможет вам только настолько, насколько позволяет библиотека. Вы сможете делать только то, что другие делали до вас.

Знание того, как работает базовая система, также позволит вам более эффективно использовать библиотеку. Знание того, с чем имеет дело библиотека, позволяет вам понять, почему существует большая разница в производительности для определенных способов использования библиотеки и почему некоторые вещи вообще не работают.

2 голосов
/ 05 декабря 2010

Если вы не хотите изучать базовые основы, убедитесь, что это так:)
Если вас не интересует, как все работает, убедитесь, что это так ...
Если вы хотите плакать опомогите каждый раз, когда вы достигнете предела jQuery, конечно, это так!
Если вы хотите зависеть от людей, отвечающих на ваши простые вопросы, то это так: D (повторяется для нас ...)

«Дурак спрашивает мудрого человека».

Другими словами, знайте, как работают инструменты, которые вы используете, иначе вы получите ужасную зависимость.

2 голосов
/ 05 декабря 2010

В некоторых случаях вы, возможно, могли бы не захотеть использовать служебную библиотеку DOM.

Например, для мобильной разработки в настоящее время мобильные интернет-соединения все еще немного медленны, поэтому вы можете сэкономить пропускную способность.оставив библиотеку и перейдя с нативным кодом DOM.(И, возможно, сэкономите немного времени на выполнение, так как мобильные устройства в настоящее время работают медленнее JavaScript, чем настольные компьютеры.)

Но с течением времени все устройства, библиотеки и интернет-соединения должны работать быстрее, поэтомуЯ считаю, что вряд ли вы будете делать много прямых сценариев DOM в повседневной веб-разработке.

1 голос
/ 05 декабря 2010

Есть очень много вещей, которые jQuery упрощает для вас, но знание базового JavaScript, который вызывает jQuery, может сделать вещи немного быстрее:

$('<div />').appendTo($('body'));

и

$(document.createElement('div')).appendTo($('body'));

оба эквивалентны, но последний работает немного быстрее (хотя и только в порядке миллисекунд), поскольку вы используете JavaScript напрямую, а не вызовете jQuery document.createElement() от вашего имени. Опять же, это определенно нелепая микрооптимизация.

Другие примеры работают с Date, Math и string объектами / функциями. jQuery не реализует замены для них (разумно, поскольку с ними уже довольно легко работать).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...