Изучение jQuery + лучших практик за 24 часа
Это может казаться невозможным, но читать дальше.
Мне нужно немного научиться jQuery, чтобы поддерживать текущее состояние и быть в состоянии убедить работодателя, я могу справиться с ним в течение менее 2 дней.
Теперь я должен упомянуть, что я действительно знаю javascript
. Это немного двусмысленный вид заявления, но, хотя я не Дуг Крокфорд, я, конечно, не имею в виду, что я могу просто переключить видимость элемента с помощью встроенного кода. Я бы зашел так далеко, чтобы сказать, что я ОЧЕНЬ знаком с MooTools, прочитал его исходный код и выключил его для последних 3 лет, а также многих плагинов MooTools.
Теперь, помогая в SO теге MooTools, я случайно взял много кода jQuery. И есть страница документа API, это достаточно справедливо - пока я хочу работать с DOM, AJAX, событиями и т.д., Я могу найти свой путь. Это не то, о чем идет речь.
Я получаю очень специфические ресурсы и руководства/примеры хорошо организованного и хорошо написанного кода для jQuery. Например, меня интересуют (но не ограничиваясь):
- особенности, связанные с API, например..bind!= привязка ECMA
- ограничения, такие как атрибуты элементов (.attr?) + обходные пути для свойств и других подводных камней
- производительность селектора (если Sizzle отличается от Slick) и...
- ... кеширующие селектора - это работает, как и как jQuery возвращается сам.
- лучшие практики по удобочитаемости и написанию легко следовать и понимать код спагетти
- лучшие практики написания плагинов - как структурировать, есть ли общие/принятые/предпочтительные номенклатуры и т.д., т.е. эквивалент jQuery это руководство по mootools
- Есть ли лучший способ справиться с наследованием в классическом смысле ООП? Я знаю moo4q, но предположим, что хочу сделать это без помощи mootools на мгновение. И да, я знаю, что я все еще могу использовать чистый javascript для основных вещей.
- Есть ли какие-либо специфические отличия в API (помимо смены строки), мне нужно знать разные версии jQuery?
- ГХ. вы делаете, удаляете ли вы события, узлы и т.д.?
- чтобы избежать. например, я видел, как ppl жалуется на твиттер, что хранение элементов происходит медленно.
- советы по структурированию надлежащего "на уровне предприятия или почти достаточного" jQuery-приложения _application__ (я знаю, я знаю - Dojo, ExtJS или даже MooTools, но это возможно с помощью jQuery, так? клянутся им и утверждают, что сделали это...)
- думаю, что мне нужно читать, чтобы начать работу
Имея это в виду, я хотел бы просто ссылки на учебные пособия или статьи или даже сообщения здесь, на SO, которые могут охватывать упомянутые области и расширенную разработку jQuery.
Некоторые избранные плагины, написанные уважаемыми/известными авторами, также будут оценены, особенно те, которые отличаются тем, как они организованы и легко расширяются. С таким большим количеством на выбор большинство, вероятно, мало прошло за фазой hello spaghetti world
, поэтому я не хотел бы использовать их в качестве примеров, на которых можно было бы основать мою собственную работу. Я не из-за плагинов, которые поддерживаются дизайнерами, так как они довольно эффектные, я хочу примеры довольно кода.
Что об этом. Любая помощь оценена - начнется чтение в воскресенье и вам нужно будет написать расширяемый плагин, подобный этому классу modal/lightbox для mootools, который я написал через 2-3 часа несколько дней назад. Я хотел бы преобразовать его в jQuery как упражнение, не делая его менее модульным/расширяемым: http://jsfiddle.net/dimitar/6creP/
Спасибо заранее, постараюсь ответить всем, кто отвечает также
Ответы
Ответ 1
jQuery очень похож на то, что он предлагает MooTools, но очень отличается тем, как он предлагает эти вещи. MooTools очень ясен и требует более глубокого понимания того, как некоторые вещи работают под капотом, а jQuery скрывает эту сложность. По моему мнению, сложность сокрытия следует принципу 80-20, и когда абстракция протекает в 20% случаев, понимание внутренней работы становится важным.
Хорошее понимание MooTools внутри и снаружи должно помочь вам легко подобрать jQuery. Некоторыми примерами этого явного поведения было бы то, как jQuery обертывает один и несколько элементов под зонтиком $
, а MooTools предоставляет явный интерфейс для обоих с $
и $$
.
При вызове AJAX для собственного домена или внешних доменов с помощью JSONP jQuery маршрутизирует все через функцию $.ajax
, а MooTools снова имеет отдельные интерфейсы для Request
и Request.JSONP
.
Ни один из подходов не является хорошим или плохим, но повторное использование тех же интерфейсов, которые большинство уже знакомы с уменьшением кривой обучения.
Некоторые хорошие ресурсы для дайвинга в jQuery будут,
В отношении организации кода большинство кода, написанных для jQuery, сильно отличаются от MooTools. В то время как MooTools использует классический стиль, используя классы и объекты, код jQuery в основном имеет DOM-ориентированный характер. Поэтому даже с настраиваемыми плагинами вы будете прикреплять данные к элементам DOM. Чтобы увидеть некоторые практически реальные примеры DOM-ориентированного подхода, вы можете посмотреть видео, связанное с этим .
Я бы не стал беспокоиться о производительности движка селектора, поскольку это в основном красно-селедка, если вы не пишете Excel для Интернета или что-то в этом роде.
Ответ 2
Вам повезло. То же случилось со мной и прочитал книгу
" Jquery in Action, 2nd Edition" через 3 дня. Это отличная книга. Я думаю, вы можете закончить через 1 день всю секцию ядра jQuery (более половины книги), это самая важная проблема.
Угадайте, что. Я получил работу:)
(Я узнал больше, пока я уже был на работе, но этого было достаточно, чтобы показать, что я знал jquery хе-хе)
Ответ 3
Основы jQuery, книга со многими вкладчиками, которые пользуются большим уважением в сообществе, легко впитываются через пару дней и полностью бесплатны онлайн!
http://jqfundamentals.com/book/
Ответ 4
относительно новый для jQuery сам, и полный noob для JS, я бы сказал, что у вас есть начальный старт;)
Как вы с CSS? - механизм селектора CSS (Sizzle) с jQuery - это кусок торта, если вы знаете свой CSS, и насколько я знаю, вы можете использовать "старомодный";) JS тоже
Я также думаю, что у вас будет преимущество, если вы знаете свои "ошибки" CSS, которые, как я думаю, вы будете делать, например. анимация с использованием jQuery не является волшебным лекарством для любых ошибок, но терминология slideUp()
, hide()
и т.д., конечно же, облегчает... но если бы эффект вызвал ошибку CSS без JS, он все равно сделает это через jQuery и возможно, такие вещи, как removeAttr() ошибка, могут быть что-то, что можно было бы легко сделать в JS (если вы так хорошо осведомлены)
Я не знаю, как легко или сложно найти такие вещи, но когда я нахожусь learning cramming, я, как правило, смотрю на все вопросы (здесь и на форумах), независимо от того, простой или базовый "Я думаю, что они есть, то, вставив код и попробовав другие ответы, а затем, чтобы поисковые системы направляли меня, вы обычно получаете доступ к корню и делаете открытия, которые можно добавить в панель знаний.
например. сегодня этот вопрос научил меня чему-то.. Полагаю, это зависит от того, сколько вам нужно учиться за 2 дня! Удачи!