JavaScript. Оптимизация производительности

JavaScript. Оптимизация производительности
sku: 136187197
ACCORDING TO OUR RECORDS THIS PRODUCT IS NOT AVAILABLE NOW
845.00 грн.
Shipping from: Ukraine
   Description
[html]Все, что Вы хотели знать об оптимизации производительности, но не знали, где спросить - в новой книге "JavaScript. Оптимизация производительности" от O'Reilly!Если вы относитесь к подавляющему большинству веб-разработчиков, то наверняка широко применяете JavaScript для создания интерактивных веб-приложений с малым временем отклика. Проблема состоит в том, что строки с программным кодом на языке JavaScript могут замедлять работу приложений. Эта книга откроет вам приемы и стратегии, которые помогут в ходе разработки устранить узкие места, влекущие за собой снижение производительности. Вы узнаете, как ускорить выполнение, загрузку, операции с деревом DOM, работу страницы в целом и многое другое.Николас Закас (Nicholas C. Zakas), программист из компании Yahoo!, специализирующийся на разработке пользовательских интерфейсов веб-приложений, и пять других экспертов в области использования JavaScript - Росс Хармс (Ross Harmes), Жюльен Лекомте (Julien Lecomte), Стивен Левитан (Steven Levithan), Стоян Стефанов (Stoyan Stefanov) и Мэтт Суини (Matt Sweeney) - представят оптимальные способы загрузки сценариев и другие приемы программирования, которые помогут вам обеспечить наиболее эффективное и быстрое выполнение программного кода на JavaScript. Вы познакомитесь с наиболее передовыми приемами сборки и развертывания файлов в действующем окружении и с инструментами, которые помогут вам в поиске проблем.Приемы и подходы, обсуждаемые в этой книге, охватывают самые разные аспекты программирования на языке JavaScript, такие как время выполнения, загрузка, взаимодействие с DOM, жизненный цикл страниц и многие другие. Из рассматриваемых проблем лишь малая часть, связанная с производительностью ядра (ECMAScript), может быть устранена за счет усовершенствования интерпретаторов JavaScript, но это еще только должно произойти.В решении остальных рассмотренных проблем увеличение производительности интерпретаторов JavaScript не решает проблему быстродействия. Это взаимодействие с деревом DOM, сетевые задержки, блокировка и параллельная загрузка сценариев JavaScript и многое другое. Эти вопросы не только не будут сняты в будущем, но станут основным предметом исследований по мере повышения производительности интерпретаторов JavaScript.Главы в этой книге организованы в соответствии с обычным циклом разработки сценариев на языке JavaScript. Сначала в главе 1 "Загрузка и выполнение" рассказывается о параллельной загрузке JavaScript-файлов одновременно с другими ресурсами.Плохо написанный программный код, использование неэффективных алгоритмов и утилит являются существенным фактором снижения производительности JavaScript. В главах 2-8 представлены конкретные приемы программирования, которые позволяют максимально увеличить скорость выполнения программного кода.В главе 2 "Доступ к данным" описывается, как JavaScript-сценарии сохраняют и извлекают данные. Важно не только решить, какие данные хранить, но и где их хранить, и эта глава демонстрирует, как такие понятия, как цепочки областей видимости и цепочки прототипов, могут влиять на производительность сценариев. Здесь рассказывается об ускорении доступа к данным и разрешении идентификаторов, об управлении областями видимости, о динамических областях видимости, об использовании цепочек областей видимости и сохранении данных в замыканиях. Этот материал позволит глубже понять особенности работы областей видимости в языке JavaScript.В главе 3 "Работа с деревом DOM" объясняется, что из-за особенностей реализации операции с деревом DOM являются самыми медленными в JavaScript. Рассматриваются все аспекты, касающиеся DOM, включая описание того, как перерисовка и реорганизация элементов страниц могут уменьшить скорость выполнения программного кода.Предлагаются удобные и эффективные приемы чтения и изменения элементов DOM, способы изменения стилей элементов DOM, позволяющие избежать лишних операций перерисовывания и перекомпоновки.Глава 4 "Алгоритмы и управление потоком выполнения" описывает, как распространенные приемы программирования, такие как циклы и рекурсия, могут работать против вас, снижая производительность во время выполнения. Здесь рассматриваются такие методы оптимизации, как мемоизация, а также некоторые ограничения, накладываемые браузерами.Многие веб­-приложения выполняют сложные операции со строками, обсуждение которых в главе 5 "Строки и регулярные выражения" ведет Стивен Левитан, эксперт по обработке текстовых данных. На протяжении многих лет веб­разработчики боролись с неэффективной реализацией строковых операций в браузерах, и Стивен объясняет, почему некоторые операции выполняются слишком медленно и как обходить это при разработке.Глава 6 "Отзывчивые интерфейсы" концентрируется на ощущениях пользователей. В процессе выполнения JavaScript-сценарий может "подвешивать" броузер, вызывая неудовольствие у пользователей. Здесь обсуждаются некоторые приемы, гарантирующие сохранение отзывчивости пользовательского интерфейса в любых условиях. Рассказывается, как решаются проблемы, обусловленные тем фактом, что выполнение JavaScript-сценариев и обновление пользовательского интерфейса производится в одном потоке выполнения. Демонстрируются такие приемы, как применение таймеров, разделение задач и использование фоновых потоков для выполнения программного кода за рамками главного потока управления.В главе 7 "Ajax" обсуждаются способы реализации быстрых взаимодействий между клиентом и сервером, показывается, как различные форматы представления данных могут влиять на производительность механизмов Ajax и почему применение объекта XMLHttpRequest не всегда является лучшим выбором.Глава 8 "Приемы программирования" представляет собой коллекцию наиболее эффективных приемов программирования, уникальных для языка JavaScript.После того как JavaScript-сценарий будет написан и отлажен, наступает момент сделать внесенные изменения доступными всем желающим. Однако недостаточно просто скопировать исходные файлы на действующий сервер. В главе 9 "Сборка и развертывание высокопроизводительных приложений на JavaScript" демонстрируется, как повысить производительность сценариев при развертывании, обсуждаются особенности использования систем сборки, автоматически минимизирующих файлы, и применение функции сжатия в протоколе HTTP при отправке этих файлов броузерам.Следующий шаг после развертывания JavaScript-сценариев - тестирование их производительности. Глава 10 "Инструменты" охватывает инструменты исследования производительности, способные помочь в поиске проблем, которые могут появиться после развертывания сценариев. Рассказывается об инструментах для профилирования JavaScript-сценариев и анализа сетевого трафика, таких как Firebug, инструменты разработчика в Chrome, dynaTrace, Fiddler, Page Speed, YSlow, веб-инспектор в Safari, инструменты разработчика в IE.Книга "JavaScript. Оптимизация производительности" адресована веб­разработчикам со средним и высоким уровнем владения языком JavaScript, желающим повысить производительность интерфейсов веб­-приложений.Оглавление книги "JavaScript. Оптимизация производительности"ПредисловиеГлава 1. Загрузка и выполнениеМестоположение сценарияГруппировка сценариевНеблокирующая загрузка сценариевОтложенные сценарииДинамические элементы scriptИнъекция сценариев с помощью XMLHttpRequestРекомендуемые способы неблокирующей загрузкиВ заключениеГлава 2. Доступ к даннымУправление областью видимостиЦепочки областей видимости и разрешение идентификаторовПроизводительность разрешения идентификаторовУвеличение цепочки областей видимостиДинамические области видимостиЗамыкания, области видимости и памятьЧлены объектовПрототипыЦепочки прототиповВложенные членыКэширование значений членов объектовВ заключениеГлава 3. Работа с деревом DOMМодель DOM в мире броузеровВрожденная медлительностьДоступ к дереву DOM и его модификацияСвойство innerHTML в сравнении с методами DOMКопирование узловHTML-коллекцииОбход дерева DOMПерерисовывание и перекомпоновкаКогда происходит перекомпоновка?Буферизация и применение изменений в дереве отображенияУменьшение количества операций перерисовывания и перекомпоновкиКэширование информации о размещенииИсключение элементов из потока отображения для внесения измененийIE и :hoverДелегирование обработки событийВ заключениеГлава 4. Алгоритмы и управление потоком выполненияЦиклыТипы цикловПроизводительность циклаИтерации на основе функцийУсловные инструкцииСравнение if-else и switchОптимизация инструкций if-elseПоисковые таблицыРекурсияОграниченность размера стека вызововШаблоны реализации рекурсииИтерацииМемоизацияВ заключениеГлава 5. Строки и регулярные выраженияКонкатенация строкОператоры плюс (+) и плюс­равно (+=)Слияние элементов массиваString.prototype.concat()Оптимизация регулярных выраженийКак работают регулярные выраженияВозвратыИсключение возвратовПримечание к измерению производительностиДополнительные пути повышения производительности регулярных выраженийКогда не следует использовать регулярные выраженияУсечение строкУсечение с применением регулярных выраженийУсечение без применения регулярных выраженийСмешанное решениеВ заключениеГлава 6. Отзывчивые интерфейсыПоток выполнения пользовательского интерфейса броузераОграничения броузеровСлишком долго - это сколько?Использование таймеровОсновы таймеровТочность таймераОбработка массивов с помощью таймеровДеление заданийХронометраж выполнения программного кодаТаймеры и производительностьФоновые потоки выполненияОкружение фонового потока выполненияВзаимодействие с фоновыми потоками выполненияЗагрузка внешних файловПрактическое использованиеВ заключениеГлава 7. AjaxПередача данныхЗапрос данныхОтправка данныхФорматы данныхXMLJSONHTMLНестандартное форматированиеЗаключительные выводы о форматах данныхРекомендации по повышению производительности AjaxКэширование данныхИзвестные ограничения библиотек поддержки AjaxВ заключениеГлава 8. Приемы программированияПредотвращение повторной интерпретацииИспользование литералов объектов/массивовПредотвращение повторного выполнения работыОтложенная загрузкаПредварительная условная загрузкаИспользование сильных сторонБитовые операторыВстроенные методыВ заключениеГлава 9. Сборка и развертывание высокопроизводительных приложений на JavaScriptApache AntОбъединение JavaScript-файловПредварительная обработка JavaScript-файловМинификация JavaScript-файловСборка в виде отдельного этапа или во время выполненияСжатие JavaScript-сценариевКэширование JavaScript-файловРешение проблем, связанных с кэшированиемИспользование сети распространения содержимогоРазвертывание JavaScript-ресурсовГибкий процесс сборки JavaScript-файловВ заключениеГлава 10. ИнструментыПрофилирование JavaScript-сценариевYUI ProfilerАнонимные функцииFirebugПанель профилировщика в консолиПрикладной интерфейс консолиПанель NetИнструменты разработчика в Internet ExplorerВеб-инспектор в броузере SafariПанель ProfilesПанель ResourcesИнструменты разработчика в ChromeБлокирование отображения страницы сценариямиPage SpeedFiddlerYSlowdynaTrace Ajax EditionВ заключениеАлфавитный указатель[/html]
   Technical Details
categoryTitle: Научная и техническая литература
rating: 0
   Price history chart & currency exchange rate

Customers also viewed