Книги по javascript и jQuery

Standard

Продолжаю серию статей по книжной тематике, книги для других языков:

JavaScript: The Definitive Guide

Javascript the definitive guide

Это моя первая книга по JavaScript, описывает все с нуля, вполне простым языком. Как правило все начинают именно с нее. Написано очень подробно, даже очень — сначала описывается сам язык, потом его взаимодействие с бразуером, затем полный справочник по языку и api браузера. Замечу, что у Ильи Кантора — создателя сайта javascript.ru есть курсы для новичков, года два назад я записался на начальный курс и он был практически идентичен, тому что вы найдете в этой книге (хотя Илья иногда отмечал особенности браузеров — чего в книге нет, UPDATE: начал перечитывать и понял, что ошибся — особенности браузеров тоже описаны) , впрочем строение курса скорей всего поменялось. Сейчас на английском есть 6-ое (!) издание книги, я заказал себе одну с амазона, так что кому надо могу отдать 5-ое издание на русском совершенно бесплатно (правда там много пометок карандашом). Если вы новичок — это пожалуй, самая лучшая книга для старта.

JavaScript & jQuery: The Missing Manual

JavaScript & jQuery: The Missing Manual

Книга написана очень ясно и понятно, минимум теории — максимум практики. Большая часть отведена под jQuery, есть раздел посвященный фишкам, например как сделать галлерею фотографий, с их предзагрузкой (так вконтакте, кстати делает). Если посмотрите на рейтинг книг по javascript на amazon — missing manual идет практически вровень с definitive guide, так что если вы начнете с этой книги ничего не потеряете.

JavaScript: The Good Parts

JavaScript The Good Parts

Из предисловия: «Большинство языков программирования содержат хорошие и плохие части, но JavaScript имеет больше плохих, будучи разработанным и выпущенным в спешке перед тем как эти части могли быть пересмотрены».  Несмотря на то, что книга о хороших особенностях языка, всё плохое здесь описано и даются соответствующие рекомендации как это обходить. Много внимания уделено особенностям наследования и его отличиям от обычной ООП парадигмы. Подойдет для программиста среднего уровня. Написана Дугласом Крокфордом — человеком, к-ый популяризировал json и создал замечательный инструмент JSLint. Да и что касается объема страниц вот вам сравнение с первой книгой :)

 

Полезные jquery функции

Standard

Обычные:

  • $(‘selector’).load() //загрузит данные в селектор, можно даже так: $(‘selector’).load(‘somepage.html#someAnchor’) закачивает страницу ищет по анкору кусок документа и вставляет его в селектор

Для работы с ajax:

  • $.post(url, data, callback) //data строка или {}
  • $.get()
  • encodeURIComponent() // не jQuery функция, позволяет кодировать символы в урле
  • $(‘#someForm’).serialize() // очень классная функция, берет все элементы в форме и формирует из них json объект
  • .error(callback) // если в аяксе ошибка — callback ее обработает
  • .getJSON() // сокращенная запись $.get(‘url’, data, callback, ‘json’)
Перемещение по DOM`у:
  • .find(‘selector’) // ищет по заданному селектору, иногда быстрее чем сама ф-ция $
  • .children() //возвращает детей
  • .parent() // возвращает верхнего родителя
  • .closest(‘selector’) // идет по дереву вверх, при нахождении селектора, останавливается и возвращает его
  • siblings() // соседи
  • next() // сосед справа
  • prev() // сосед слева

Работа с html:

  • end() // метод возвращает ориг. объект селектора, к примеру $(‘selector1′).doStuff().find(‘selector2′).end() в конце он вернет объект на к-ый ссылается селектор selector1, а не selector2
  • wrap(‘<sometag></sometag>’) // обрамляет элемент в заданный html
  • wrapInner()
  • unwrap()
  • empty()

$().delegate(‘selector’, ‘event’, f(){}) ~ .live()

Лично я придерживаюсь такого стиля: когда надо сохранить в переменную jQuery объект, я именуя его предваряя долларом, к примеру $someVar = $(‘#someId’). Кстати сохранять jQuery объекты в переменных очень полезно, тк данные будут сохранены в памяти и еще раз вам вызывать тот же самый селектор не понадобится.

Советы по селекторам:

  • исп ID где можно
  • исп ID как первое в род. селекторе
  • $(‘#main’).find(a) бывает быстрее иногда чем $(#main a)
  • Не исп много селекторов, лучше сделать так: find(‘selector’).find(‘selector’).find(‘selector’)

Работа с регулярками в JS:

  • /regexp/
  • str.search(//)
  • .replace(//, replace)
  • match()

Относительный путь в тегах img tinyMCE

Standard

При работе над своим плагином к tinyMCE для symfony 1.4, столкнулся с такой проблемой: когда вставляю изображение с абсолютным путём при сохранении путь становится относительным.

Это все решается 2 настройками, при инициализации:

tinyMCE.init({
relative_urls: false,
remove_script_host: true //Если false - будет указывать хост
});