Предисловие		11		
	1. Загрузка и выполнение		21		
	Местоположение сценария		22		
	Группировка сценариев		24		
	Неблокирующая загрузка сценариев		26		
	Отложенные сценарии		26		
	Динамические элементы script		27		
	Инъекция сценариев с помощью XMLHttpRequest		31		
	Рекомендуемые способы неблокирующей загрузки		32		
	В заключение		36		
	2. Доступ к данным		37		
	Управление областью видимости		38		
	Цепочки областей видимости и разрешение идентификаторов 		39		
	Производительность разрешения идентификаторов		41		
	Увеличение цепочки областей видимости		. 44		
	Динамические области видимости		46		
	Замыкания, области видимости и память		47		
	Члены объектов		50		
	Прототипы		50		
	Цепочки прототипов		52		
	Вложенные члены		54		
	Кэширование значений членов объектов		55		
	В заключение		57		
	3. Работа с деревом DOM		58		
	Модель DOM в мире браузеров		58		
	Врожденная медлительность		59		
	Доступ к дереву DOM и его модификация		59		
	Свойство inner HTML в сравнении с методами DOM		61		
	Копирование узлов		65		
	HTML-коллекции		66		
	Обход дерева DOM		71		
	Перерисовывание и перекомпоновка		75		
	Когда происходит перекомпоновка?		75		
	Буферизация и применение изменений в дереве отображения 		76		
	Уменьшение количества операций перерисовывания и перекомпоновки		78		
	Кэширование информации о размещении		81		
	Исключение элементов из потока отображения для внесения изменений		82		
	IE и :hover		82		
	Делегирование обработки событий		83		
	В заключение		85		
	4. Алгоритмы и управление потоком выполнения		87		
	Циклы		87		
	Типы циклов		88		
	Производительность цикла		89		
	Итерации на основе функций		94		
	Условные инструкции		95		
	Сравнение if-else и switch		95		
	Оптимизация инструкций if-e lse 		97		
	Поисковые таблицы		99		
	Рекурсия		101		
	Ограниченность размера стека вызовов.		101		
	Шаблоны реализации рекурсии		103		
	Итерации		104		
	Мемоизация		105		
	В заключение		108		
	5. Строки и регулярные выражения		109		
	Конкатенация строк		110		
	Операторы плюс (+) и плюс-равно (+=)		110		
	Слияние элементов массива		113		
	String.prototype.concat()		115		
	Оптимизация регулярных выражений		116		
	Как работают регулярные выражения		117		
	Возвраты		118		
	Исключение возвратов		121		
	Примечание к измерению производительности		127		
	Дополнительные пути повышения производительности регулярных выражений		127		
	Когда не следует использовать регулярные выражения		131		
	Усечение строк		132		
	Усечение с применением регулярных выражений		132		
	Усечение без применения регулярных выражений		135		
	Смешанное решение		136		
	В заключение		138		
	6. Отзывчивые интерфейсы		139		
	Поток выполнения пользовательского интерфейса браузера		139		
	Ограничения браузеров		141		
	Слишком долго - это сколько?		143		
	Использование таймеров		145		
	Основы таймеров		145		
	Точность таймера		148		
	Обработка массивов с помощью таймеров		148		
	Деление заданий		150		
	Хронометраж выполнения программного кода 		152		
	Таймеры и производительность		154		
	Фоновые потоки выполнения		155		
	Окружение фонового потока выполнения		155		
	Взаимодействие с фоновыми потоками выполнения		156		
	Загрузка внешних файлов		157		
	Практическое использование		157		
	В заключение		159		
	7. Ajax		160		
	Передача данных		160		
	Запрос данных		161		
	Отправка данных		168		
	Форматы данных		171		
	XML		171		
	JSON		175		
	HTML		179		
	Нестандартное форматирование		181		
	Заключительные выводы о форматах данных		184		
	Рекомендации по повышению производительности Ajax		185		
	Кэширование данных		185		
	Известные ограничения библиотек поддержки Ajax		188		
	В заключение		189		
	8. Приемы программирования		191		
	Предотвращение повторной интерпретации		191		
	Использование литералов объектов/массивов		193		
	Предотвращение повторного выполнения работы		194		
	Отложенная загрузка		195		
	Предварительная условная загрузка		196		
	Использование сильных сторон		197		
	Битовые операторы		197		
	Встроенные методы		200		
	В заключение		202		
	9. Сборка и развертывание высокопроизводительных приложений на JavaScript		203		
	Apache Ant 		204		
	Объединение JavaScript-файлов		205		
	Предварительная обработка JavaScript-файлов		206		
	Минификация JavaScript-файлов		209		
	Сборка в виде отдельного этапа или во время выполнения		211		
	Сжатие JavaScript-сценариев		211		
	Кэширование JavaScript-файлов		213		
	Решение проблем, связанных с кэшированием		214		
	Использование сети распространения содержимого		215		
	Развертывание JavaScript-pecypcoв		215		
	Гибкий процесс сборки JavaScript-файлов		216		
	В заключение		218		
	10. Инструменты		219		
	Профилирование JavaScript-сценариев		220		
	YUI Profiler		221		
	Анонимные функции		225		
	Firebug		226		
	Панель профилировщика в консоли		227		
	Прикладной интерфейс консоли		228		
	Панель Net 		229		
	Инструменты разработчика в Internet Explorer 		230		
	Веб-инспектор в браузере Safari		233		
	Панель Profiles		233		
	Панель Resources		236		
	Инструменты разработчика в Chrome		237		
	Блокирование сценариями отображения страницы		238		
	Page Speed		239		
	Fiddler		241		
	YSlow		243		
	dynaTrace Ajax Edition		245		
	В заключение		248		
	Алфавитный указатель		249