Pull to refresh
26
0
Владимир Гребнев @ImKremen

User

Send message

Закрепляем jQuery — 25 отличных советов

Reading time19 min
Views168K
Перевод отличной статейки. Думаю, будет полезна как новичкам, которые только приступили к использованию jQuery, так и тем, кто уже какое-то время с ним работает. А кого-то, возможно, заставит глянуть эту чудесную библиотечку. Многие советы имеют отношение не только к jQuery, но и к JavaScript в целом. Лично для меня была весьма и весьма познавательной, посему и захотелось донести это «до масс». Перевод не дословный, но передающий смысл и максимально адаптированный к русскому языку.

Далее все написано от имени автора оригинальной статьи.

Введение


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

Я не эксперт в jQuery. И даже не претендую, поэтому, если встретите ошибки, смело поправляйте меня и вносите предложения по улучшению (поправлять и присылать поправки нужно автору статьи, а не перевода — зам. пер.).

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

Содержание


  1. Загружайте фреймворк с Google Code
  2. Используйте «шпаргалку» (cheat sheet)
  3. Соединяйте все ваши скрипты и уменьшайте размер файла
  4. Используйте возможности Firebug для ведения логов
  5. Минимизируйте операции выборки в пользу кэширования
  6. Сводите манипуляции с DOM-деревом к минимуму
  7. Оборачивайте все в единый элемент, когда речь идет о любой вставке в DOM
  8. Используйте «id» вместо классов, где это возможно
  9. Задайте контекст своим селекторам
  10. Используйте последовательности вызовов методов с умом
  11. Научитесь правильно использовать анимацию
  12. Научитесь назначать и делегировать события
  13. Используйте классы для сохранения состояния
  14. Еще лучше — используйте встроенный в jQuery метод data() для сохранения состояния
  15. Пишите собственные селекторы
  16. Подготавливайте HTML и модифицируйте его, когда страница загружена
  17. Используйте «отложенную загрузку» (lazy loading) для определенного контента для выигрыша в общей скорости и преимуществ для SEO
  18. Используйте служебные функции jQuery
  19. Используйте «noconflict» для переименования глобального объекта «jquery», когда используете его с другими фреймворками
  20. Как узнать что картинки загружены?
  21. Всегда используйте последнюю версию
  22. Как проверить, что элемент существует?
  23. Добавляйте класс «JS» в элемент «html»
  24. Возвращайте «false» для отмены поведения по-умолчанию
  25. Короткая запись для события готовности документа


Rock'n'Roll!

5 способов, которыми игры пытаются вызвать зависимость

Reading time10 min
Views189K
Итак, в новостях снова пишут, что кто-то еще умер из-за игромании. Да, опять Корея.

Какого ...? послушайте, я не пытаюсь доказать что видео игры — это героин. Я полностью понимаю, что в данном случае у жертвы было много проблем в жизни. Но, половина из вас знает что World of Warcraft затягивает и что доктора считают игровую зависимость серьёзной проблемой. А вопрос вот в чем: может быть какие-то игры намеренно разрабатывались, чтобы заставлять вас играть в них, даже если вы не получаете от этого удовольствия?
Давайте посмотрим как это работает

Препроцессинг CSS на клиенте

Reading time6 min
Views2.2K
Представьте, что вы пишете блогохостинг и хотите позволить авторам блогов менять свой дизайн. Картиночки там вставлять, цвета менять, пропорции регулировать… Представили? Если хорошо представили, то уже поняли, что без констант и формул в CSS тут не обойтись.

При блуждании по блогам не хотелось бы грузить все стили заново, что неизбежно при серверном вычислении значений, а хотелось бы грузить лишь минимальную разницу — так называемый скин.

Итого, нам нужно грузить в дополнение к данным страницы: скин с константами и стили с формулами. Только две клиентские технологии позволяют сделать это: JS и XSLT. Однако первую очень любят отключать, а вторую отключать просто нет смысла. Поэтому вынесем CSS в XSLT контейнер, а заодно и не забудем про технологию XHTML-инклудов.

а теперь о том как снималось это порно

Древовизируйте

Reading time1 min
Views1.2K

Есть сервис:


image

Назначение:


Быстрая конвертация мыслей в визуальное древовидное представление.

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

Кто-то другой вероятно сможет найти иное применение.

Плюсы:


  • Любую операцию можно сделать с хоткея
  • Внизу по этому поводу красуется «неглупая» панель с хоткеями. Неглупая потому что показывает только доступные в данный момент времени сочетания клавиш. Напрмер, если вылез попап, то она покажет какой клавишей его скрыть, какой пролиcтать и т.п.
  • Минималистичность.
  • Легкий дизайн, который не отвлекает.
  • Возможность видеть все проекты сразу.
  • Возможность работы на нескольких машинах одновременно с одного пользователя. То есть оно умное, все из себя ajax и обновляет.


а где живет?

Авторизация по протоколу OAuth на примере Desktop Twitter-клиента

Reading time6 min
Views26K
Потребовалось мне тут написать некий кроссплатформенный Twitter-клиент с закрытым исходным кодом, не спрашивайте зачем мне это надо, работа у меня такая, деньги я за это получаю. Что логично, языком разработки был выбран С++ с использованием Qt.
Сам API Twitter'a прост как кирзовый сапог. Но! Есть такая важная штука как авторизация, и тут есть два пути, старый — аутентификация посредством HTTP Headers и новый — использование протокола OAuth. Старый метод прост, также как и само API, но, к сожалению, он не безопасен, и самое главное команда Twitter'a предупреждает, что откажется от него в конце июня сего года. Поэтому остается второй метод OAuth. Надо сказать, что данный протокол используется не только в Twitter, но поскольку я писал Twitter-клиент, и рассматривать мы будем на примере Twitter'a.
и как же это сделать?

Создаём тему для Drupal. Часть 3

Reading time3 min
Views32K
image
Часть 1, Часть 2

Шаблоны


Шаблоны мы будем складывать в sites/all/themes/mytheme/templates. Создадим шаблоны page.tpl.php — для страниц, node.tpl.php — для контента, block.tpl.php — для блоков, comment-wrapper.tpl.php — для блока с комментариями, comment.tpl.php — для одного комментария, header.tpl.php — для шапки, footer.tpl.php — для подвала, region.tpl.php — для регионов. Также, по аналогии с препроцессами, мы можем создавать файлы типа node-story.tpl.php для отображения материала типа story или block-user.tpl.php для блока user. Это позволяет темизировать отдельно разные типы содержимого сайта.
Читать дальше →

Кто виноват в том, что сайт не выполняет своих функций?

Reading time6 min
Views1.2K
Знакомьтесь — Джон, владелец достаточно крупного сайта, маркетолог, считает себя умным, профессиональным, и к тому же уверен, что умеет четко излагать свои мысли. При всем этом, Джон не так уж много знает о веб-дизайне и разработке, поэтому ему нужна ваша помощь. Джон обращается к вам с целым набором четких маркетинговых целей и просит вас назвать цену своей работы.

Всегда объясняйте клиенту, зачем вы спрашиваете о бюджете



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

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


Клиент не должен думать, что вы выманиваете у него деньги.

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

Читать дальше →

Подводный мир Интернета или где топят оптику в мировом океане

Reading time3 min
Views32K
image
Интернет – это не только web. Помимо контента (и устройств его хранения и обработки), отображаемого на web страницах важны ещё и линии связи. Причём важнее всего дальнемагистральные направления, т.к. провайдеров в городе может быть несколько, а вот соединение между городами и странами могут обеспечить немногие. Тем более, если речь идёт о разных континентах, тогда приходится топить сотни километров оптоволокна в пучинах мирового океана.
Читать дальше →

Вышел пакет MonoTools 1.1 для Visual Studio 2010

Reading time1 min
Views947
Группа разработчиков Mono выпустила обновления для своего набора инструментов MonoTools, который позволяет разрабатывать проекты Mono в Visual Studio и создавать пакеты для Linux. Этот бета-выпуск принес совместимость с Visual Studio 2010!

image

Кроме того в этом выпуске:
— добавлена поддержка проверки на наличие обновлений;
— улучшена функция копирования файлов при разворачивании или обновлении контента;
— интеграция с последней версией Visual Studio 2010 RC;
— добавлена функция помогающая создавать прекомпилированные пакеты приложений;
— много исправлений ошибок и других улучшений.

Официальный анонс здесь. Команда Mono просит сообщество протестировать данные инструменты и сообщать о всех ошибках и впечатлениях.

Договор на абонентское обслуживание сайта

Reading time6 min
Views47K
Несколько месяцев назад я уже выкладывал типовой договор на техническое обслуживание и поддержку сайта. В том топике, я получил много замечаний и комментариев. Мы постарались учесть все комментарии и замечания при составлении нового договора, им я и спешу поделиться.

image

Читать дальше →

Визуальный редактор jHtmlArea

Reading time2 min
Views5.7K
Очень компактный, но в то же время довольно удобный визуальный редактор jHtmlArea. По первой букве в названии можно догадаться, что используется jQuery.

Он в чем-то схож с более известным jWysiwyg. Несмотря на то что имеет меньший размер, обладает не меньшими возможностями. На мой взгляд код организован гораздо удобнее, очень легко расширяем. Также огромный плюс в том, что иконки в меню можно располагать в любом порядке.
Читать дальше →

Якорная навигация на jQuery (graceful degradation)

Reading time2 min
Views5.3K
Недавно я наткнулся на интересный плагин для jQuery: BBQ — Back Button & Query Library.

И решил на ее основе сделать свой плагин для навигации на основе якорей. Задачи, которые я себе ставил:
  1. нормальная работа ссылок в условиях выключенного javascript (читай — нормальная индексация страниц поисковиками)
  2. поддержка обычных anchor-ссылок безо всяких дополнительных запросов
  3. поддержка отображения подгруженного контента в разных областях страницы

Результат можно посмотреть здесь. А еще можно почитать чуть подробнее.

UPD: дамы и господа, некоторые жалуются на недоступность странички (403 Forbidden), однако, я ничего такого не вижу. В комментах привели ссылку на рабочий вариант, который можно попробовать, если моя ссылка у вас не заработала: http://vbolshov.org.ru.nyud.net/anchornav/.

как это использовать

ModX и Drupal: разные истории

Reading time5 min
Views12K
До знакомства с CMS ModX планировалась статья сравнения этих двух систем, особенно после появления темы «Сравнение Drupal, MODx (и других систем) в рабочем проекте» на drupal.ru где предлагалось соревнования что выяснить какая система лучше.
После небольшого знакомства с МодХ все вопросы отпадают сами собой и ни о каком сравнении не может быть и речи.

Начнем с того что эти две CMS используются для различных целей и они не взаимозаменяемы. Друпал предназначен для сайтов мини-портал и выше, в то время как МодХ я классифицирую как хороший конструктор сайтов визиток. Область применения МодХ заканчивается на сайтах имеющих статьи и новости одновременно. И заводить спор о том что из МодХ можно создать сайты крупнее и даже крупный портал, тоже верно, но и с сопоставимыми временными затратами можно создать этот крупный портал с нуля.

Зато МодХ отлично делает сайты визитки, имеет свой менеджер загрузки файлов, имеет встроенный редактор TinyMCE, многоязычный интерфейс администратора, понятный мастер установки и много чего другого. И в тоже время делать сайты визитки на Друпале немного неправильно, сам факт выделения 64Мб оперативной памяти для сайта визитки на 20 страниц и хостинг для этого «проекта» может вызвать истерический смех у многих веб-разработчиков.

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

Читать дальше →

Как стать успешным фрилансером

Reading time12 min
Views35K
Это статья о работе фрилансеров. Сам я много раз выступал как в роли заказчика, так и в роли исполнителя работ; наш аккаунт на free-lance.ru занимает 5 место в рубрике "сайты под ключ", хотя ему всего 9 месяцев (пока писал, сместился на 6-ое место).
Хочу поделиться с вами некоторыми соображениями об успешном фрилансе.

1. Правильное взаимодействие с заказчиком – половина успеха.

Грамотное общение с заказчиком – это половина успеха проекта. Помните, недостаточно быть хорошим программистом или дизайнером, чтобы быть успешным фрилансером. Вы еще и менеджер. Много зависит от того, как вы сумеете продать свои услуги, как будете общаться с заказчиком в процессе выполнения работы.
Заказчика в основном интересуют три вещи: адекватность исполнителя, его опыт (портфолио) и цена. Чуть менее – сроки работ.
Показать то, что вы вполне адекватный человек, с которым можно работать – это самое легкое из этого списка. О некоторых простых вещах при общении многие фрилансеры забывают. Не выставляйте заказчика дураком, даже если он действительно совершенно не разбирается в вопросе. Не дайте почувствовать ему себя ламером. Объясните ему суть вопроса без использования узкопрофессиональных терминов, посоветуйте лучший вариант реализации. При общении не используйте сленг, обращайтесь к заказчику на «вы», пишите без грамматических ошибок. Особенно актуально, когда вы говорите с потенциальным клиентом — вы ничего о нем не знаете. Может он старше вас в два раза и обращение «привет» его коробит.

Покажите похожие проекты, если такие имеются. Это сильно повышает шансы на то, что заказчик выберет вас. Называйте адекватные сроки, не занижайте их в угоду заказчику. Рассчитывайте свою загруженность, сможете ли реально уложиться в срок. Лучше планировать с запасом, так как часто возникают непредвиденные обстоятельства – друг позвал в гости, заболели, интернет вырубился.

Каждый заказчик хочет заплатить поменьше, получить побольше. Это нормальное желание каждого клиента и покупателя. Но все имеет свою стоимость. И не каждый это понимает, пытаясь сильно сбить цену. Держите свою планку. Можно сделать небольшую скидку, но если заказчик хочет сбросить цену вдвое – значит, это просто не ваш клиент. Цените свой труд. У заказчика может быть масса надуманных причин, с помощью которых он станет просить изменить цену. Самые популярные:
Сейчас я у меня только эти деньги на проект, но в будущем у меня будет много денежных заказов для вас. Когда-нибудь, может быть. Это не повод снижать цену.
Давайте вы поработаете за % от прибыли будущего проекта. А заказчик тогда вообще зачем нужен?
Мой начальник выделил определенный бюджет, я бы рад заплатить больше, но не могу. Практически любой бюджет можно пересмотреть. Нет? Но тогда это проблема заказчика.
А у Васи Пупкина дешевле. Что же вы тогда не заказываете у него?

Читать дальше →

Колоночная верстка

Reading time5 min
Views16K
Существует много способов по верстке колоночных макетов. Уже не один нос разбит в течении холиваров, разожженных по поводу использования тех или иных методов. Казалось бы, что все должно быть предельно ясно и понятно, но все-равно возникает много трудностей. Я хочу и свою лепту вложить во всеобщее благое дело, и потому потратил относительно немного времени на эксперименты, которые привели меня к созданию еще одного метода, в котором есть следующие плюсы и минусы:

Плюсы
  • Есть прижимающийся к полу футер
  • Колонки меню растягиваются по 100% высоте
  • Колонок может быть сколько душе угодно
  • Колонки могут быть как лево- так и правосторонними, а также совмещенными, например 2 справа и 1 слева
  • Ширина как резиновая, так и фиксированная
  • Критический минимум хаков
  • Не используется Javascript
  • Не используются бекграундовые изображения для создания эффекта колонки
  • Никаких таблиц
  • Одинаковый результат в ie5.5, ie6, ie7, ie8, ff3.5, o10, chrome4 (Если у вас не работает в каком-то браузере — отпишитесь, пожалуйста, в комментах. Исправим и приведем к универсальному виду)

Минусы
  • Есть несколько «лишних» блоков. (Я бы и сам рад от них избавиться)
  • Есть несколько абсолютно-позиционируемых блоков
Читать дальше →

Тривиальные задачи по вёрстке

Reading time4 min
Views60K
image

Начинаю вести серию статей Это статья про вёрстку html css js, начинаю с самого простого, потом планирую описать более сложные вещи и всякие тонкости и этим видимо так и закончил

Читать дальше →

jQuery для начинающих. Часть 4. Селекторы

Reading time11 min
Views216K


Последнее время мне всё чаще задают вопрос как выбрать тот или иной элемент в DOM'е, и данный пост будет сплошь посвящен селекторам в jQuery, возможно большинство из них Вы видели в различных источниках, но собрать их воедино все же стоит…
Читать дальше →

Интерактивный редактор для jQuery — прорыв?

Reading time1 min
Views5K
Странно, что такое шикарное событие не взбудоражило умы Хабровчан. Эта новость достойна твоего внимания, %username%!

Внимание — видео!



Понравилось? Тогда беги и качай бесплатно прямо сейчас: www.ixedit.com

jQueryPad — мечта разработчика jQuery

Reading time1 min
Views1.5K
Доступен для бесплатной загрузки инструмент jQueryPad, который может значительно облегчить жизнь разработчикам использующим jQuery. Этот инструмент предлагает работу с целевым html, запросами jQuery и результатом запросов в одном окне:



Здесь, нижняя часть с текстом — это встроенный компонент Internet Explorer с результатом работы jQuery и возможностью посмотреть исходный код. jQueryPad так же находит другие установленные браузеры для организации просмотра результата в них. Пример найденных браузеров на скриншоте в блоге автора.

jQueryPad написан на WPF и требует для работы .NET Framework 3.5 Service Pack 1

Почитать анонс jQueryPad можно в блоге автора.
Прямая ссылка на архив с программой.
12 ...
17

Information

Rating
Does not participate
Location
Днепр, Днепропетровская обл., Украина
Date of birth
Registered
Activity