Статьи

Подкаст SitePoint # 50: jQuery: от новичка до ниндзя

Эпизод 50 подкаста SitePoint теперь доступен! На этой неделе к Кевину Янку ( @sentience ) присоединяются Эрл Кастледин ( @mrspeaker ) и Крейг Шарки ( @twalve ), соавторы новой книги SitePoint, jQuery: от новичка до ниндзя .

Полная стенограмма интервью приводится ниже.

Скачать этот эпизод

Вы также можете скачать этот эпизод в виде отдельного файла MP3. Вот ссылка:

  • Подкаст SitePoint №50: jQuery: от новичка до ниндзя (MP3, 33,2 МБ)

Стенограмма интервью

Кевин: 26 февраля 2010 года. Соавторы SitePoint Эрл Кастледин и Крейг Шарки заходят, чтобы обсудить JavaScript-библиотеку jQuery.

Сегодняшнее шоу посвящено JavaScript. Независимо от того, являетесь ли вы экспертом по JavaScript или вы всегда хотели добавить JavaScript в свой инструментарий, сегодняшнее шоу для вас. У нас есть два соавтора последней книги SitePoint, jQuery: от новичка до ниндзя , чтобы поговорить с нами. У нас есть граф Каследин, которого в веб-кругах называют мистером Спикером. Вы можете найти его в Twitter @mrspeaker .

Эрл хорошо известен своими экспериментами по превращению веб-технологий в новые формы. Его последний эксперимент, TurnTubeList, позволяет вам взять два плейлиста видео YouTube и смешать их взад-вперед, как на проигрывателе DJ, а пользовательский интерфейс выполнен с помощью JavaScript, управляющего двумя Flash-фильмами с YouTube, и это действительно впечатляет. Проверьте это на TurnTubeList.com .

Крэйг Шарки известен в Твиттере как @twalve, и Крэйг работал на такие громкие имена, как AOL, Microsoft, Yahoo !, Ziff-Davis, и теперь он называет Atlassian home. Он много лет гастролирует и говорит о JavaScript. Ему нравится оставаться, он говорил о «хороших частях» JavaScript до того, как это сделал Дуглас Крокфорд.

Ребята, добро пожаловать!

Оба: Привет, Кевин!

Кевин: Это редкое удовольствие, когда я разговариваю с двумя авторами SitePoint в моем часовом поясе.

Эрл: Думаю, это хороший часовой пояс.

Кевин: Крейг и Эрл оба австралийцы. Они оба в Сиднее в данный момент. Я нахожусь здесь, в Мельбурне, но ничего себе, это не так уж далеко по сравнению с … Обычно мы получаем авторов из Америки, Европы и других стран, но это здорово, что я могу продемонстрировать некоторые австралийские таланты с этой книгой ,

Итак, эта книга, jQuery: новичок для ниндзя , справедливо ли говорить, что это руководство для начинающих по jQuery?

Эрл: Полагаю, заголовок — это намек. Да, это книга для начинающих, но она приближается к концу. Таким образом, к концу каждый может кое-что узнать о jQuery.

Кевин: Для тех, кто не знает в нашей аудитории, кто-нибудь может описать, что такое jQuery?

Эрл: Те, кто не знает, что такое jQuery?

Кевин: (смеется) Точно.

Эрл: В конце урока, ребята! JQuery — это детище Джона Резига. По сути, это библиотека JavaScript, которая помогает манипулировать DOM. Это главная особенность jQuery — возможность перемещать вещи на странице. Это функции — можно выбирать вещи на странице, например, получать абзацы и перемещать их, или прошивать их, или делать все, что вы можете себе представить, и у него также есть аккуратная вспомогательная библиотека Ajax. Таким образом, в нем есть две части: манипулирование DOM и классная библиотека Ajax. Вы сказали бы, что это справедливо, Крейг?

Крейг: Да, безусловно, честно. Это действительно простой способ для неклассических разработчиков получить доступ к некоторым функциям, которые обычно требуют гораздо больше усилий, чем вы можете, просто взяв нашу книгу и начав с нуля.

Кевин: Что вы подразумеваете под неклассическими разработчиками?

Крейг: язык использует синтаксис, который очень знаком сообществу дизайнеров через CSS. Так что вам не нужно беспокоиться о понимании многих скрытых возможностей JavaScript, прежде чем вы сможете начать использовать jQuery. Таким образом, вы в конечном итоге полюбите JavaScript и захотите узнать его намного лучше, но вы можете получить множество функций, которые будут работать очень быстро, просто подключив jQuery к вашим веб-страницам и переходя оттуда.

Кевин: Итак, jQuery добавляет этот слой поверх языка JavaScript. Это слой, который будет очень знаком людям, которые пришли из CSS?

Эрл: Это верно. Вы выбираете вещи на странице в основном с помощью CSS-селекторов, поэтому, если вы знаете, как стилизовать что-то, вы знаете, как его выбрать, а затем, если вы знаете, в конце вы ставите .hide.fade Так что все работает быстро, это действительно весело. Просто очень интересно играть со страницей.

Кевин: Хорошо. Это действительно, где JQuery получил свое имя. Речь шла о получении набора элементов, набора частей страницы на основе запроса CSS, верно? Но он действительно вырос оттуда. Я имею в виду, какие части jQuery сегодня не знают люди?

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

Крейг: Также вы можете расширить движок селектора, чтобы: люди, знакомые с CSS, были бы знакомы с :hover:last-child:first-child Еще одна особенность языка заключается в том, что если вы можете подумать о действии, скорее всего, первым ориентиром в API будет именно это действие. Так что если вы хотите что-то скрыть, как сказал Эрл, это не toHidehideElement это просто слово hide Итак, вы нашли селектор, добавили к нему одно действие и получили отличный ответ.

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

Крейг: Угу.

Эрл: Он сделал свой собственный селектор, поэтому вместо того, чтобы говорить о выборе .classnameh1:belowthefold Это сузило бы это до всего, что было ниже сгиба страницы. Это был просто способ начать выбирать такие вещи, которые не были частью основного механизма выбора jQuery.

Кевин: Вау, это действительно круто.

Эрл: Да, мне понравилось.

Кевин: Справедливо ли будет сказать, что после того, как вы начнете использовать jQuery, ваш код JavaScript в конечном итоге будет выглядеть совсем иначе, чем тот код, который вы написали раньше?

Эрл: Нет … Надеюсь, это выглядит лучше.

Кевин: (смеется) Лучше другое.

Earle: Вы не можете отделить тот факт, что если вы серьезно занялись написанием jQuery, а затем, в конце концов, хотите научиться правильно писать JavaScript. Вы все еще можете написать ужасный JavaScript, используя jQuery.

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

Крейг: И мы действительно стремились сделать так, чтобы, хотя книга фокусировалась на jQuery, чтобы во всех примерах использовалась передовая практика, где это возможно, так что если вы будете следовать нашим примерам к тому времени, когда закончите книгу, вы должны выйти из нее как гораздо лучший программист на JavaScript, чем вы раньше, даже лучший программист, чем вы хотели стать.

Кевин: Да, это то, что мы пытаемся сделать со всеми книгами SitePoint, так что хорошая работа, ребята, хорошая работа.

Оба: (смеется)

Кевин: Очевидно, jQuery — не единственная библиотека JavaScript.

Эрл: Нет, я думаю, что это так. (смеющийся)

Кевин: (смеется) «Думаю, ты найдешь это!»

Крейг: Там есть один или два, да.

Кевин: Для вас, ребята, это единственный выбор?

Эрл: Теперь это так. Я играю с любой новой вещью, которая когда-либо выйдет, когда-либо, и попытаться использовать его в производственной среде, если я могу получить его мимо моих боссов, но теперь я попал в точку, где-хорошо, это спорно, но JQuery В некотором смысле выиграл битву библиотек, и это не на 100% верно, потому что есть другие библиотеки, которые концентрируются на разных… Они начинают создавать свои собственные ниши. С точки зрения скорости, jQuery не самая быстрая библиотека.

Крейг: Это второй самый быстрый и спорно.

Эрл: Да.

Крейг: Что в целом произойдет — я думаю, что одна из причин, по которой jQuery действительно ценен для нас как разработчиков, состоит в том, что существует огромное сообщество. Так что это не только сила самого языка, но и сила сообщества за языком. Например, я встретился с Джоном Резигом в WebStock на прошлой неделе в Веллингтоне, и мы говорили о том факте, что библиотека-конкурент подаст заявку, и Джон пойдет и проверит, чтобы убедиться, что заявка правильная или неправильная, и если он узнает, что кто-то действительно может заявить, что его библиотека делает X лучше, чем jQuery, то он изменит способ работы jQuery, чтобы он соответствовал или лучше, чем библиотека конкурента.

Кевин: На этом материале много серых областей. Когда вы говорите о производительности, я имею в виду, вы судите о производительности по тому, насколько быстро она работает в самом быстром браузере или как она работает в самом медленном браузере?

Earle: У них обычно есть большая матричная установка, чтобы показать вам, как она работает в любом браузере. Проблема с производительностью … Ладно, для меня это становится все меньше и меньше. У меня не было… Даже когда вы создаете сумасшедшие смешные виджеты, когда вещи начинают затихать, только когда вы делаете что-то действительно сумасшедшее, вас больше не волнует, когда вы начинаете говорить о миллисекундах для 15 000 операций, это как, хорошо, отлично, другой на 5 миллисекунд быстрее, но конечный пользователь не заметит этого, во многих случаях. Это зависит, конечно, от того, что вы делаете.

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

Кевин: Я хочу поговорить о jQuery с двух разных точек зрения. Первый — для тех, кто совсем не знает JavaScript. Я имею в виду, мы упоминали ранее, что jQuery предоставляет приветственный набор функций для людей, которые знают CSS и могут сгладить некоторые трудности и странность JavaScript, когда вы впервые сталкиваетесь с языком. Вы бы действительно порекомендовали кого-то, кто не знает JavaScript, изучить его с помощью jQuery, а затем изучить язык оттуда?

Эрл: Конечно.

Крейг: Определенно, определенно.

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

Эрл: И это, по сути, опять же, это сглаживает то, что на самом деле — могу я сказать, дерьмо? Я собираюсь сказать дерьмо — о JavaScript в браузере. Если первое, что кто-то не имеет опыта работы с JavaScript, это написать хороший кросс-браузер getElementByClassName Они не хотят этого делать. Они просто хотят иметь возможность получать элементы по имени класса, а затем выяснять, что они хотят с ним делать, и когда вы хотите сделать что-то, чего нет в jQuery, тогда вы говорите: «Ну, как мне это сделать?» И обычно этот ответ — JavaScript. Таким образом, вы можете даже стирать грань между тем, когда вы начинаете фактически входить в JavaScript, если это имеет смысл?

Кевин: Да. И другая точка зрения заключается в том, что каждый, кто является опытным разработчиком JavaScript, проходит этот период, когда они создают свои собственные библиотеки, свою собственную кодовую базу, которую они знают и которой доверяют, и они понимают, как работает каждая строка, и они знают, если что-то не сработает, они смогут это исправить, потому что они создали его в первую очередь. Очевидно, что вы двое прошли через свое собственное путешествие, и оно закончилось тем, что «я собираюсь выбросить свой собственный getElementByClassName

Эрл: Мой был назван E-jax, для библиотеки Ajax Эрла. Да, это длилось не очень долго. Это длится до того момента, когда вы используете его в проекте, когда вы понимаете, что допустили ошибки в нем, а затем вы должны вернуться и исправить это в каждом проекте, в котором вы его использовали, а затем нет, и затем вы говорите: «Кто-то другой должен заботиться об этих основах, а не я».

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

Кевин: Что такое jQuery для отладки? Если он делает что-то, чего вы не ожидаете, и вам нужно просверлить этот черный ящик и посмотреть, что происходит, на что это похоже?

Earle: Вы имеете в виду, есть ли ошибка в исходном коде jQuery?

Кевин: Будь то ошибка или просто то, что вы не поняли.

Earle: Обычно вам никогда не нужно заходить в библиотеку jQuery, чтобы посмотреть на нее, если вы не сделали что-то довольно сумасшедшее. Обычно отладка следует так, как вы обычно отлаживаете. Вы нарушаете функции или предупреждаете, если нужно, и вы выясняете, что происходит. Как правило, вы знаете, что сделали что-то глупое, если ошибка возникает в коде внутри библиотеки jQuery. Не то, что глупо, но вы говорите: «О, подожди, я перешел во что-то, чего не ожидал». Обычно это довольно высокий уровень. Но вдаваться в код — если вы серьезно хотите войти в код jQuery, это очень красивый код JavaScript.

Крейг: Да.

Эрл: Если хочешь посмотреть. Я имею в виду, я люблю просматривать исходный код этого. Вот почему я всегда буду держать его в неминифицированной версии, пока она не поступит в производство для QA.

Кевин: Итак, у вас возникает ощущение, что для того, чтобы что-то было настолько эффективным и таким быстрым, что им приходилось делать некоторые вещи действительно неочевидными способами, и если вы покопаетесь в этом коде, вы очень быстро потеряетесь, потому что вместо того, чтобы делать то, что делает красивый код, они делают то, что делает быстрый код. Это правда вообще?

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

Эрл: Это не … там нет странных трюков. Есть трюки, но они не исчезли … не все запутано и странно. Это очень читабельно.

Крейг: Да, и часто уловки — это то, что вы не обязательно делаете в первый раз, когда пишете JavaScript, поэтому вы можете настроить таргетинг на браузер, и вы получите отличный ответ. Но они сделали свой код гибким, чтобы приспособиться к кросс-браузерным проблемам, так что, если вы начнете смотреть на их код, вы начнете сначала учиться, как делать лучший код.

Эрл: Но обычно тебе не нужно в это вмешиваться.

Крейг: Очень, очень редко.

Кевин: Хорошо.

Эрл: Вы можете выяснить в своем собственном коде, что происходит.

Крейг: И часто вы… Если вы проведете какое-то время на IRC-канале, вы увидите, что есть много людей, которые быстро помогают. Если вы обнаружите что-то, что возникает как ошибка, которую вы считаете ошибкой, то спросите сообщество, и сообщество часто предоставит быстрый ответ.

Кевин: Итак, давайте поговорим о сообществе. JQuery, первое имя, которое приходит на ум, когда вы слышите JQuery, — это, как вы сказали, Джон Резиг, создатель библиотеки. Насколько большой частью сообщества является Джон? Он все еще единственный человек, ответственный за jQuery, или это стало усилием сообщества?

Эрл: «Душевник»…

Крейг: (смеется)

Кевин: (смеется)

Крейг: Это определенно работа сообщества, но приятно знать, что есть кто-то, у кого еще есть рука. Таким образом, есть растущая команда разработчиков, которые постоянно следят за исходным кодом, но есть один человек, который знает, что происходит, кто любит его так сильно, что он рад назвать свое имя.

Эрл: Это довольно безумно. Так много раз в списках разработчиков я что-то отправлял, а через 10 минут появляется ответ от Джона Резига, и вы говорите: «Вы все время не спите?»

Кевин: Ребята, вы недавно познакомились с Джоном Резигом на WebStock в Новой Зеландии, верно?

Крейг: Да.

Эрл: Я встретил его в Сиднее. У нас была встреча с JQuery, и он пришел к этому. Это было действительно хорошо.

Кевин: Итак, тема всплыла, что вы, ребята, вот-вот опубликуете книгу «jQuery Ninja», и у него готовится книга «JavaScript Ninja», были ли там какие-то обиды?

Эрл: Я обошел вокруг этой проблемы, да.

Крейг: Я беспокоюсь об этой проблеме, да.

Кевин: Какой он?

Эрл: Действительно хороший, хороший парень.

Крейг: Да, очень скромно. Он как его библиотека. Он просто знает, что делает. Одна из вещей, которые мне показались странными, это то, что он говорил, что больше не кодирует, он не создает сайты продуктов со своей библиотекой. Он тратит свое время на строительство своей библиотеки.

Кевин: Ммм. Так что я думаю, что сообщество становится действительно важным.

Эрл: Определенно. Это больше не просто Джон. Сейчас в команде jQuery целая куча ключевых ребят. Поэтому я думаю, что это, вероятно, убегает, убегает только от Джона. На самом деле, разве он не должен был сделать это недавно?

Крейг: Основа, да.

Эрл: Так что, если Джон будет сбит автобусом, то jQuery продолжит работу; что отчасти важно.

Кевин: Крейг, в ​​своей биографии о книге вы рассказываете, как в 90-е годы вы говорили о «хороших частях» JavaScript по сравнению с не очень хорошими, и это то, что Дуглас Крокфорд из Yahoo! сделал карьеру вокруг сейчас.

Крейг: Да.

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

Крейг: Сам по себе JavaScript все еще остается минным полем, и, к сожалению, так будет и впредь. Должно быть… Из-за того, что JavaScript так повсеместно используется для построения Интернета, необходимо поддерживать сильное чувство обратной совместимости. Итак, большая часть кода, который мы видим в ECMAScript, заключается не в изменениях в способе работы кода, а в создании дополнительных функций, которые мы можем использовать.

Эрл: Значит, все плохое еще есть.

Крейг: Вот так, да.

Earle: Вы все еще можете создавать ужасный JavaScript с или без jQuery.

Кевин: Но, надеюсь, вы доберетесь до функции jQuery, прежде чем достигнете функции JavaScript.

Крейг: Да.

Earle: И вы также обнаружите, что особенно когда вы начинаете использовать плагины, вы начинаете смотреть на код плагинов, и если они являются хорошими плагинами, вы также начинаете видеть хороший код. Я нашел много маленьких советов, таких как «Хороший, хороший способ сделать это» от хорошего плагина.

Кевин: Так что само собой разумеется, что основной код jQuery хорош . Есть ли хорошие и плохие части jQuery, это то, что мне интересно? Есть ли плагины, которых следует избегать?

Earle: Плагины, которых следует избегать? О, есть ужасные плагины.

Крейг: Если вы видите плагин, который рекламируется на сайте jQuery, то вы можете доверять ему.

Кевин: Действительно?

Эрл: Но все еще исследования.

Крейг: Точно. Вы все еще должны исследовать плагин. Вы все еще должны убедиться, что это соответствует вашим целям. Это как будто вы позволяете другому разработчику разместить свой код на вашем сайте. Таким образом, вы должны делать это с чувством не трепета, но вы должны действительно осознавать, что происходит.

Кевин: Да, это все равно, что дать кому-то ключи от твоей машины. Вы должны убедиться, что вы знаете, кто они и что они собираются вернуть его.

Оба: Точно.

Кевин: Говоря о плагинах jQuery, у вас, ребята, есть какие-то фавориты, те, которые не настолько известны, о которых вы хотели бы поговорить?

Крэйг: У меня есть фантастическая версия, которую я создал для Twitter.

Кевин: Ну, ладно, это твой собственный плагин, так что это обманывает, но давай, расскажи нам о своем плагине.

Крейг: Это похоже на стандартное действие от jQuery. Вы просто находите селектор, говорите, что это Twitter, и он заполняет этот селектор твитами. Таким образом, это займет имя пользователя, перейдет в поток и получит доступ к потоку Twitter и просто заполнит страницу. Он использует функции jQuery, чтобы вы получали анимацию, и это бесшовные встраивания Ajax, чтобы вы могли сидеть там весь день и смотреть, как поток проходит мимо вас.

Кевин: Это действительно круто. Вы говорили о типичных библиотеках JavaScript по сравнению с конкретными библиотеками JavaScript, и я думаю, что jQuery начал довольно специфично. Вначале она решила одну реальную проблему, но превратилась в универсальную библиотеку, но теперь люди создают специальные библиотеки в виде плагинов jQuery.

Эрл: Как что?

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

Крейг: Да, мы делаем это здесь, в Atlassian. У нас есть библиотека под названием AUI, которая является пользовательским интерфейсом Atlassian, и это именно то, что в качестве основы у нас есть jQuery, но сверху у нас есть определенные функции, которые подходят для наших продуктов.

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

Эрл: Знаете, я все еще… Обычно, если я просто кодирую, у меня есть небольшая идея, я часто просто кодирую это прямо в JavaScript, в то время как я просто прототипирую его и поднимаю, но Я считаю, что начиная с j — я имею в виду, что вы настолько привыкли к удобству, что подключаете его туда, но это не значит, что вы всегда захотите это сделать. Если вы хотите сохранить наименьшую возможную базу кода, продолжайте работать, как вы сказали ранее, это слой. Вы кладете слой поверх того, что вы делаете. Если вам не нужен этот слой, тогда, конечно, нет ничего плохого в том, чтобы написать свой собственный, но не говорите своему боссу, потому что они будут знать, что это займет больше времени.

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

Кевин: Значит, это не волшебство. Если это будет медленно реализовываться, скорее всего, это медленный процесс для jQuery.

Эрл: Да, ничего волшебного.

Крейг: Но это все время становится немного более волшебным.

Кевин: Да, я уверен, что в jQuery есть несколько хороших идей, о которых вы не обязательно задумываетесь, и поэтому вы получаете преимущество от этих оптимизаций, но это хорошее осторожное место для начала. Может быть, JQuery не волшебство.

Крейг: Ну, если вы в значительной степени… Может быть, вы начнете думать, что это волшебство, но если вы настоящий ботаник, вы никогда не будете доверять магии. Таким образом, вы делаете тонкую грань, делая это.

Кевин: Итак, что сейчас происходит с jQuery? Я знаю, что 1.4 это как раз то, что мы записываем.

Крейг: Да, 1.4 на самом деле вышел. Он вышел в четверг вечером или в пятницу вечером на прошлой неделе.

Кевин: Да. Итак … что нового и захватывающего в 1.4 и что ожидается в jQuery, что вы, ребята, с нетерпением ждете?

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

Кевин: Крейг?

Крейг: Подходя, как говорил Эрл, но одной вещью, которую я нахожу интересной в мобильном пространстве, является то, что они не говорят о том, чтобы вырезать браузеры из jQuery. У них есть jQuery до такой степени, что они знают, что оптимизация, которую мне нужно сделать для IE7, все равно будет полезна для совместимого браузера. Таким образом, они не собираются уходить от какой-либо другой платформы или браузера, они стремятся сделать всю библиотеку самой лучше на каждом этапе, и потому что в версии 1.4 они действительно усилили живое действие, так что перед вами будет делать клик, теперь вы делаете живой клик, и это означает, что вы делегируете, что увеличивает скорость ответа браузера. Основываясь на этом, они фактически представили новое действие, называемое «делегировать себя», и делегат позволяет вам выполнять те же функции, что и в режиме реального времени, но выполнять это только в разделе страницы, поэтому он сокращает DOM, который вы просматриваете, и вы получаете фантастический ответ от браузера на всех различных платформах.

Кевин: Теперь ты потерял меня там. Я не знаю, каковы эти живые действия. Как вы думаете, вы могли бы сделать шаг назад и описать это более подробно?

Крейг: Да, действия — это просто то, что мы делаем с jQuery, так что…

Кевин: Да, так что, как «спрятаться» раньше.

Крейг: Точно, как спрятаться. Или, например, щелчок мышью или наведение курсора мыши, но из-за некоторых вариантов браузера у нас никогда не было такого полного доступа ко всем различным функциям, которые вы обычно ожидаете. Таким образом, вы не могли сделать мышиный ввод через живое действие.

Эрл: Подожди, ты спрашиваешь, что такое живое?

Кевин: Да!

Earle: Ах да, это было просто … хорошо, так что представьте, что если вы хотите, чтобы каждый абзац на вашей странице выглядел раздражающим всплывающим окном, когда вы нажимаете на него, и вы похожи на $('p').clickalert("Hey, how are going?") Как будто?

Кевин: Да.

Эрл: Это было бы здорово, каждый абзац на твоей странице — ты щелкнешь по нему, он всплывет и выскочит: «Эй, эй! Замечательно.»

Крейг: Проблема возникает, если вы добавили абзац на свою страницу после того, как функция была запущена изначально …

Кевин: Точно.

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

Кевин: Таким образом, живые события обеспечивают постоянное удобство, когда новые обработчики событий автоматически применяются к элементам, которые добавляются в документ на лету. Так что нового в 1.4?

Эрл: Это было раньше. Они действительно исправили это для 1.4.

Крейг: Они сделали это быстрее и открыли для новых событий.

Кевин: Да, хорошо. Это классно.

Эрл: Я думаю, что это была их любимая часть 1.4. Мол, «Спасибо! Вы наконец-то сделали живую работу идеальной.

Крейг: Вы все еще можете написать щелчок как действие, но вы должны быть уверены, что используемый вами селектор будет доступен при вызове функции и не изменится впоследствии.

Кевин: Да.

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

Кевин: Итак, насколько хорош jQuery, что в этом нет ничего раздражающего?

Крейг: Нет!

Эрл: Нет … Иначе они бы перестали его развивать.

Кевин: (смеется) Так что тебя раздражает в jQuery?

Эрл: Ну, для меня — мы вернулись к твоим вещам — мне нравится, когда вещи не отвлекаются; Мне нравится видеть, где вещи. Таким образом, удобство для меня также раздражает, что я отказываюсь от своего контроля над ним. Но удобство того стоит.

Кевин: И я думаю, что это мешает многим разработчикам принять что-то вроде jQuery.

Крейг: Да. Определенно.

Эрл: Но до тех пор, пока вы не воспользуетесь им, я думаю, что после того, как вы использовали его некоторое время, вы говорите: «Почему в прошлом я тратил так много времени на написание этого материала снова и снова? Я должен был просто использовать jQuery ». Я думаю, хорошо, даже если вы не используете jQuery, вам нужно использовать библиотеку в эти дни. В противном случае, вы теряете время.

Кевин: Крейг, что тебя раздражает в jQuery?

Крейг: Один из моих главных ошибок в данный момент — это не столько проблема с самой Библиотекой, сколько факт, что нам все еще нужно беспокоиться о ее загрузке. Я бы хотел, чтобы мы подошли к тому моменту, когда вы можете сказать браузеру, что хотите добавить в него библиотеку. Таким образом, вместо того, чтобы обращаться к CDN (сети распространения контента), чтобы получить более широкий доступ к файлам, сами файлы по сути доступны в браузере. Таким образом, я знаю, когда я запрыгиваю в поезд, что библиотека, которую я использовал, когда я был дома в моей сети, все еще будет доступна для меня без необходимости входить и подправлять код.

Кевин: Да, это захватывающе. Мол, есть сети доставки контента там. Для вас было бы редкостью загрузить jQuery и сделать его частью вашего проекта. Обычно в эти дни вы просто ссылаетесь на официальный сервер, но это действительно затрудняет разработку, когда вы не в сети.

Крейг: Да.

Кевин: Хм, это раздражает. Я хочу jQuery в моем браузере.

Крейг: (смеется)

Кевин: Значит, эта книга насчитывает 400 страниц.

Крейг: Да!

Кевин: И, написав книгу такого размера, я знаю, что это за достижение. Поздравляю, ребята.

Крейг: Спасибо.

Эрл: Большое спасибо.

Кевин: Какие вещи скрыты на этих 400 страницах, которыми вы, ребята, больше всего гордитесь? Я думал, что плагин ниже сгиба был действительно впечатляющим.

Крейг: Спасибо.

Кевин: Есть ли что-то еще, что мы должны искать?

Крейг: Одной из вещей, которыми я также гордился, было то, что когда Джон Резиг выступил с речью WebStock, представил ее, он говорил о некоторых лицах jQuery, у которых меньше документации, чем у других, и мне было очень приятно увидеть Многое из того, что Эрл и я сделали примером, действительно присутствовало в речи Джона. Так что такие вещи, как конечное действие, которое вы узнаете и полюбите, когда начнете его использовать, плохо документированы, но есть в книге, и нам это нравится.

Эрл: Да. Мне нравится последняя часть книги, где мы действительно разбираемся в ниндзя-эй, и я очень надеюсь, что найдутся люди, которые никогда не прикасались к jQuery и в конечном итоге добрались до последней главы и рассказали о ней. все. Вот что … я думаю, как мы структурировали книгу, мне действительно нравится. Мне бы понравилось, если бы в конце мы превратили несколько не-JavaScripters в любящий JavaScript. Это то, что я хотел бы.

Крейг: Здесь работали несколько парней, и они сказали: «Теперь я действительно ищу книгу, которая позволит им начать с самого начала». И я сказал: «Ну, вы поняли». И они сказали: «Да, но я не знаю, как правильно использовать селекторы». И я сказал: «Ну, книга делает это». Так что я думаю, что это действительно хорошо, что книга способна добраться до аудитория, которая ранее была немного заблокирована от доступа к этому уровню развития.

Кевин: В начале этой книги вы, ребята, немного романтиковали с вашими посвящениями. Это обычно не то, что я вынимаю, потому что посвящения могут быть довольно личными. Но они редко такие личные. Эрл, ваша преданность гласит: «Для Амелии, я хотел сфотографировать меня, держащего ящик с бумом над головой, но они не позволили мне. Ты выйдешь за меня? Эрл ». И я знаю, что в тот день, когда он был представлен в SitePoint, все говорили об этом, и мы подумали:« Чувак, это довольно подходящее время для предложения ». И мы очень расстроились, что не смогли получить книгу в печати ко Дню всех влюбленных, Эрл. Но как все прошло?

Эрл: Ну, я сейчас помолвлен, так что …

Крейг: Ву!

Кевин: Поздравляю. Аплодисменты Эрла. (Хлопки)

Earle: Да, как вы сказали, было довольно много времени, и, знаете, я действительно просто сконцентрировался на сохранении отношений, чтобы…

Крейг: (смеется)

Кевин: Да, мы подумали: «О, боже, это было бы непростое изменение в последнюю минуту».

Эрл: О, сейчас я в хороших книгах, это точно.

Кевин: Да. Так расскажи нам историю, что случилось?

Эрл: Возможно, у меня будут проблемы с рассказом этой истории, но Амелия, которая моя невеста…

Кевин: Да.

Эрл: Ну, потому что я понятия не имел, когда эта книга попадет в мои руки, я применял процесс гибкой разработки здесь, вы знаете, у меня уже было несколько готовых планов резервного копирования, но в конце концов, это было на в парке, где она давила на меня: «Я хочу увидеть книгу, я хочу увидеть книгу». И я откладывал это, наконец-то позволил ей это сделать, и она взяла книгу, посмотрела на обложку , посмотрел на заднюю обложку и затем — я думаю, «истинная женская форма» — прямо к посвящению! Так что мне не нужно было … Не было никаких подсказок или чего-то еще. И я никогда не видел, чтобы лицо сменилось с легкой улыбки на более быстрое потрясение. Тогда это была пара «действительно» вопросов: «Правда? Правда? »И тогда все было счастливым. Она была все улыбки.

Кевин: Ах, это здорово.

Эрл: у меня было готовое кольцо и все. Это какое-то планирование прямо там.

Кевин: Ну, когда он напечатан, ты знаешь, что так и должно быть. Поздравляю, ребята. Мы уже планируем, как мы собираемся настроить его для второго тиража.

Earle: Waeeey? Это звучит…

Кевин: Вы должны поставить как «Она сказала да!» Или что-то нравится.

Эрл: Ну, вот что она сказала мне. Она сказала: «На самом деле, я не дам тебе ответ. Я дам вам знать в посвящении моей первой книги.

Кевин: (смеется) Youch!Что ж, было здорово поговорить с вами, ребята, и я с нетерпением жду, чтобы покопаться. Я прочитал первые пару глав, но да, я глубоко увлечен этой книгой, так что с нетерпением жду, когда я прочту остальную часть, и да, я Я рад слышать, что это не просто умный заголовок. Это на самом деле добраться до некоторых продвинутых мест в конце. Это настоящее достижение.

Эрл: Хорошо, я хотел бы услышать, что вы скажете об этом, когда дойдете до конца.

Кевин: Хорошо. Ну, спасибо, что присоединились ко мне, ребята.

Эрл: Спасибо.

Крейг: Наше удовольствие.

Кевин: И с нетерпением жду второго издания.

Оба: (смеется)

Кевин: До свидания.

Оба: Спасибо, Кевин.

Кевин: И спасибо за прослушивание подкаста SitePoint. Если у вас есть какие-либо мысли или вопросы по поводу сегодняшнего интервью, пожалуйста, свяжитесь с нами.

Вы можете найти SitePoint в Твиттере @sitepointdotcom , и вы можете найти меня в Твиттере @sentience .

Посетите sitepoint.com/podcast, чтобы оставить комментарий к этому шоу и подписаться на получение каждого шоу автоматически. Мы вернемся на следующей неделе с новым показом новостей и комментариев с нашей обычной группой экспертов.

Этот эпизод подкаста SitePoint был создан Карном Броудом, а я — Кевином Янком. А сейчас до свидания!

Вы можете найти SitePoint в Твиттере @sitepointdotcom .

Есть мысли по поводу этого интервью? Пожалуйста, посетите нас по адресу sitepoint.com/podcast, чтобы оставить комментарий к этому шоу и подписаться на получение каждого шоу автоматически. Напишите [email protected], если у вас есть какие-либо вопросы к нам; Мы хотели бы прочитать их на шоу и дать вам наш совет.

Этот эпизод подкаста SitePoint был создан Karn Broad . Спасибо за то, что выслушали и счастливого, здорового и успешного 2010 года.

Тема музыки Майка Меллы .

Спасибо за прослушивание! Не стесняйтесь сообщить нам, как у нас дела, или продолжить обсуждение, используя поле комментариев ниже.