Книга: Закас Николас «JavaScript. Оптимизация производительности». Javascript оптимизация производительности закас николас
JavaScript. Оптимизация производительности - Николас Закас
Если вы относитесь к подавляющему большинству веб-разработчиков, то наверняка широко применяете JavaScript для создания интерактивных веб-приложений с малым временем отклика. Проблема состоит в том, что строки с программным кодом на языке JavaScript могут замедлять работу приложений.
Эта книга откроет вам приемы и стратегии, которые помогут в ходе разработки устранить узкие места, влекущие за собой снижение производительности. Вы узнаете, как ускорить выполнение, загрузку, операции с деревом DOM, работу страницы в целом и многое другое.
Николас Закас, программист из компании Yahoo!, специализирующийся на разработке пользовательских интерфейсов веб-приложений, и еще пять экспертов в области использования JavaScript представят оптимальные способы загрузки сценариев и другие приемы программирования, которые помогут вам обеспечить наиболее эффективное и быстрое выполнение программного кода на JavaScript. Вы познакомитесь с наиболее передовыми приемами сборки и развертывания файлов в действующем окружении и с инструментами, которые помогут в поиске проблем.
Книга «JavaScript. Оптимизация производительности» адресована веб-разработчикам со средним и высоким уровнем владения языком JavaScript, желающим повысить производительность интерфейсов веб-приложений.
Когда в 1996 году в Netscape Navigator впервые появилась поддержка JavaScript, производительность еще не имела большого значения. Интернет находился в зачаточном состоянии, и обмен данными происходил очень медленно. Из-за медленных коммутируемых соединений и невысокой вычислительной мощности домашних компьютеров путешествие по Всемирной паутине становилось скорее упражнением на выдержку. Пользователи привыкли ждать загрузки веб-страниц, и когда загрузка успешно завершалась, это воспринималось как праздник.
Первоначальная цель JavaScript заключалась в повышении удобства использования веб-страниц. Вместо того чтобы для решения простых задач, таких как проверка правильности заполнения формы, обращаться к серверу, поддержка JavaScript дала возможность встраивать необходимую функциональность непосредственно в страницы. Это позволило
экономить время на обращениях к серверу. Представьте, что вы заполнили длинную форму, отправили ее, ждали ответа 30-60 секунд, и все это только для того, чтобы получить сообщение, что какое-то одно поле заполнено неправильно. Можно смело утверждать, что появление JavaScript сэкономило уйму времени первым пользователям Интернета.
В течение следующего десятилетия росла мощность компьютеров и продолжалось развитие Интернета. Прежде всего, и компьютеры, и Интернет стали намного быстрее. Резкое увеличение быстродействия микропроцессоров, удешевление памяти и появление оптоволоконных каналов открыли новую эру развития Интернета. С расширением доступности высокоскоростных соединений начали «тяжелеть» веб-страницы за счет встраивания в них больших объемов информации и мультимедиа.
Всемирная паутина превратилась из множества слабо связанных друг с другом документов в единое целое с различными интерфейсами и дизайнами. Изменилось все, кроме JavaScript. Инструмент, прежде использовавшийся как средство, позволяющее уменьшить число обращений к серверу, стал применяться все шире. Там, где раньше использовались десятки строк кода на JavaScript, стали применяться сценарии, насчитывающие сотни, а порой и тысячи строк. Появление Internet Explorer 4 и динамического HTML (возможности изменять некоторые аспекты страниц без их перезагрузки) давало уверенность, что объем программного кода на языке JavaScript в страницах со временем будет только расти.
Последним крупным шагом в развитии броузеров было появление объектной модели документа (Document Object Model, DOM), унифицированного подхода к реализации динамического HTML, выполненной в Internet Explorer 5, Netscape 6 и Opera. Реализации этой модели близко соответствовали третьей версии стандарта ЕСМА-262. С появлением броузеров, поддерживающих DOM и (более или менее) одну и ту же версию JavaScript, родилась платформа для веб-приложений. Несмотря на огромный скачок в развитии и обобщенный API, используемый при создании сценариев на языке JavaScript, сами реализации JavaScript, выполняющие эти сценарии, практически не развивались.
Главы в этой книге организованы в соответствии с обычным циклом разработки сценариев на языке JavaScript. Сначала, в главе 1, обсуждаются наиболее оптимальные способы загрузки JavaScript-сценариев в страницы. Главы 2-8 представляют конкретные приемы программирования, которые позволяют максимально увеличить скорость выполнения программного кода. В главе 9 обсуждаются наиболее оптимальные способы создания и развертывания JavaScript-файлов в действующем окружении, а глава 10 охватывает инструменты исследования производительности, способные помочь в поиске проблем, которые могут появиться после развертывания сценариев. Пять из этих глав были написаны другими авторами:
Глава 3 «Работа с деревом DOM», Стоян Стефанов (Stoyan Stefanov)
Глава 5 «Строки и регулярные выражения», Стивен Левитан (Steven Levithan)
Глава 7 «Ajax», Росс Хармс (Ross Harmes)
Глава 9 «Сборка и развертывание высокопроизводительных приложений на JavaScript», Жюльен Лекомте (Julien Lecomte)
Глава 10 «Инструменты», Мэтт Суини (Matt Sweeney)
Все эти авторы являются опытными веб-разработчиками, внесшими существенный вклад в веб-разработку. Их имена упоминаются на первых страницах соответствующих глав, давая читателю возможность идентифицировать их труд.
JavaScript. Оптимизация производительности | Николас Закас | ISBN 978-5-93286-213-1 ISBN 978-0-596-80279-0 | Символ Плюс, 2012 год
Смотрите также другие материалы:
jQuery. Подробное руководство по продвинутому JavaScript. Второе издание. Бер Бибо, Иегуда Кац.
Веб-Дизайн. Идеи, секреты, советы. Патрик Макнейл.
PHP и jQuery для профессионалов. Джейсон Ленгсторф.
artageless.com
JavaScript. Оптимизация производительности (Николас Закас)
содержание .. 13 14 15
YSlow
243
Рис. 10.16. Вкладка Statistics в окне программы Fiddler
Программа Fiddler доступна только для Windows. Следует также
упомянуть условно-бесплатный продукт под названием Charles
Proxy, который может работать и в Windows, и в Mac OS. Получить
пробную версию и ознакомиться с описанием этого продукта можно
YSlow
Инструмент YSlow позволяет получить подробную информацию о вре
мени загрузки и выполнения сценариев на этапе начального отображе
ния страницы. Этот инструмент был разработан Стивом Содерсом (Ste
ve Souders) для внутренних нужд компании Yahoo! как расширение
для Firefox (выполняющееся под управлением расширения GreaseMon
key). Впоследствии он был сделан общедоступным как дополнение для
Firebug, поддерживается и регулярно обновляется разработчиками из
244
Глава 10. Инструменты
компании Yahoo!. Инструкции по установке и описание продукта мож
YSlow оценивает время загрузки внешних ресурсов, создает отчет о про
изводительности и дает рекомендации по увеличению скорости загруз
ки страницы. Оценки, предоставляемые программой, основываются на
богатом опыте исследований, проводившихся экспертами в области про
изводительности. Применение этих рекомендаций и знакомство с опы
том, лежащим в их основе, поможет обеспечить максимально возмож
ную кажущуюся скорость загрузки страницы за счет сокращения чис
ла загружаемых ресурсов до необходимого минимума.
На рис. 10.17 изображено, как выглядит в панели YSlow представление
по умолчанию проанализированной веб-страницы. Здесь приводится
список рекомендаций по оптимизации времени загрузки и отображе
ния страницы. Каждая рекомендация включает дополнительную ин
формацию и описание предпосылок.
Рис. 10.17. YSlow: все результаты
В целом, применение рекомендаций позволит ускорить загрузку и вы
полнение сценариев. На рис. 10.18 показаны рекомендации, отфильтро
ванные по параметру JAVASCRIPT, где даются советы по оптимизации за
грузки и выполнения сценариев.
Интерпретируя результаты, имейте в виду, что иногда могут возникать
исключения, которые придется учитывать. Например, может понадо
биться решить, когда загружать сценарии по отдельности, а когда объ
единять множество сценариев в один сценарий, и загрузку каких сце
нариев и функций следует отложить до отображения страницы.
dynaTrace Ajax Edition
245
Рис. 10.18. YSlow: рекомендации по оптимизации JavaScript-сценариев
dynaTrace Ajax Edition
Разработчики dynaTrace, надежного инструмента диагностики произ
водительности на платформе Java/.NET, выпустили версию «Ajax Ediŧi
on», которая позволяет выполнять диагностику производительности
в Inŧernet Explorer (в ближайшее время ожидается выход версии для
Firefox). Этот свободно распространяемый инструмент позволяет вы
полнять непрерывный анализ производительности - от сетевых опера
ций и отображения страницы до выполнения сценариев и использова
ния центрального процессора. Все аспекты отображаются в едином от
чете, что позволяет легко отыскать узкие места. Результаты могут экс
портироваться для дальнейшего изучения и анализа. Загрузить
Сводный отчет Summary, изображенный на рис. 10.19, дает наглядное
представление, позволяющее быстро определить области, требующие
дополнительного внимания. Из этого отчета можно перейти к изуче
нию более узкоспециализированных отчетов за получением более по
дробных сведений о продолжительности различных этапов.
Отчет Network (Сеть), изображенный на рис. 10.20, содержит весьма по
дробные сведения о продолжительности каждого этапа сетевой актив
ности, включая время поиска в DNS, установления соединения и ответа
сервера. Эта информация может подсказать, какие сетевые настройки,
возможно, требуется скорректировать. В панелях под отчетом отобра
жаются заголовки запроса и ответа (слева) и фактическое тело ответа
(справа).
Отчет JavaScript Triggers (Выполнение JavaScript) содержит подробную ин
формацию о каждом событии, возникшем в процессе анализа (рис. 10.21).
Из этого отчета можно перейти к исследованию конкретных событий
246
Глава 10. Инструменты
(load, click, mouseover и других), чтобы отыскать основную причину низ
кой производительности.
Рис. 10.19. dynaTrace Ajax Edition: сводный отчет Summary
Этот отчет включает также информацию обо всех динамических (Ajax)
запросах, которые могут генерировать события, и все «обратные вызо
вы» в сценарии, которые могут производиться по окончании выполне
ния запросов. Это позволяет лучше понять, из чего складывается об
щая производительность, что может быть невозможно при профилиро
вании сценария из-за асинхронной природы Ajax.
dynaTrace Ajax Edition
247
Рис. 10.20. dynaTrace Ajax Edition: отчет Network
Рис. 10.21. dynaTrace Ajax Edition: панель PurePaths
248
Глава 10. Инструменты
В заключение
Когда веб-страницы или приложения начинают выглядеть медлитель
ными, анализ динамики загрузки ресурсов из сети и профилирование
сценариев во время их выполнения позволит сконцентрировать усилия
по оптимизации там, где это действительно необходимо.
• Используйте инструменты анализа сетевого трафика для выявле
ния узких мест на этапе загрузки сценариев и других ресурсов; это
поможет определить, загрузку каких сценариев лучше отложить,
а для каких следует выполнить профилирование.
• Хотя опыт подсказывает, что нужно максимально уменьшить коли
чество HTTP-запросов, тем не менее иногда отложенная загрузка
сценариев может обеспечить более высокую скорость отображения
страницы и произвести на пользователя более благоприятное впе
чатление.
• Используйте профилировщики для выявления наиболее медлен
ных участков сценариев. Исследование времени выполнения каж
дой функции, количества вызовов функций и самого стека вызовов
точены усилия по оптимизации.
• Наиболее ценной обычно является информация о времени выполне
ния функций и о количестве вызовов, однако внимательное изуче
ние того, как эти функции вызываются, может натолкнуть на мыс
ли о других способах оптимизации.
Инструменты, описанные в этой главе, помогают раскрыть тайны в це
лом не очень дружелюбных окружений, в которых должны выполнять
ся современные программы. Использование их перед началом оптими
зации гарантирует, что время будет потрачено на решение истинных
проблем.
sinref.ru
JavaScript. Оптимизация производительности.- Николас Закас
JavaScript. Оптимизация производительности.- Николас Закас
Если вы относитесь к подавляющему большинству веб-разработчиков, то наверняка широко применяете JavaScript для создания интерактивных веб-приложений с малым временем отклика. Проблема состоит в том, что строки с программным кодом на языке JavaScript могут замедлять работу приложений. Эта книга откроет вам приемы и стратегии, которые помогут в ходе разработки устранить узкие места, влекущие за собой снижение производительности. Вы узнаете, как ускорить выполнение, загрузку, операции с деревом DOM,, работу страницы в целом и многое другое.
Николас Закас, программист из компании Yahoo!, специализирующийся на разработке пользовательских интерфейсов веб-приложений, и еще пять экспертов в области использования JavaScript представят оптимальные способы загрузки сценариев и другие приемы программирования, которые помогут вам обеспечить наиболее эффективное и быстрое выполнение программного кода на JavaScript. Вы познакомитесь с наиболее передовыми приемами сборки и развертывания файлов в действующем окружении и с инструментами, которые помогут в поиске проблем.
Книга адресована веб-разработчикам со средним и высоким уровнем владения языком JavaScript, желающим повысить производительность интерфейсов веб-приложений.
Теги: Javascript, Оптимизация производительности, Николас закас, Компьютерная литература, Программирование
Похожие статьи
Рефакторинг: улучшение существующего кода.-Мартин Фаулер, Кент Бек, Джон Брант, Уильям Апдайк, Дон Робертс
Программист-фанатик.- Чед Фаудлер
Непрерывное развертывание ПО. Автоматизация процессов сборки, тестирования и внедрения новых версий программ - Джез Хамбл, Дэвид Фарли
Zend Framework: разработка веб-приложений на PHP - Викрам Васвани
Секреты JavaScript ниндзя.- Джон Резиг, Беэр Бибо
Экстремальное программирование: планирование.- Кент Бек, Мартин Фаулер
Джоэл: и снова о программировании - Джоэл Спольски
Hadoop в действии.- Чак Лэм
PHP: объекты, шаблоны и методики программирования - Мэтт Зандстра
Программирование микроконтроллерных плат Arduino/Freeduino.- Уилли Соммер
makedev.org
Закас Николас. JavaScript. Оптимизация производительности
Серия: "-" Если вы относитесь к подавляющему большинству веб-разработчиков, то наверняка широко применяете JavaScript для создания интерактивных веб-приложений с малым временемотклика. Проблема состоит в том, что строки с программным кодом на языке JavaScript могут замедлять работу приложений. Эта книга откроет вам приемы и стратегии, которые помогут в ходе разработки устранить узкие места, влекущие за собой снижение производительности. Вы узнаете, как ускорить выполнение, загрузку, операции с деревом DOM, работу страницы в целом и многое другое. Николас Закас, программист из компании Yahoo!, специализирующийся на разработке пользовательских интерфейсов веб-приложений, и еще пять экспертов в области использования JavaScript представят оптимальные способы загрузки сценариев и другие приемы программирования, которые помогут вам обеспечить наиболее эффективное и быстрое выполнение программного кода на JavaScript. Вы познакомитесь с наиболее передовыми приемами сборки и развертывания файлов в действующем окружении и с инструментами, которые помогут в поиске проблем. Книга адресована веб-разработчикам со средним и высоким уровнем владения языком JavaScript, желающим повысить производительность интерфейсов веб-приложений. Издательство: "Символ-Плюс" (2013)
ISBN: 978-5-93286-213-1 |
Другие книги схожей тематики:
Закас М. | JavaScript. Оптимизация производительности | Если вы относитесь к подавляющему большинству веб-разработчиков, то наверняка широко применяете JavaScript для создания интерактивных веб-при-ложений с малым временемотклика. Проблема состоит в том… — Символ+Плюс СПб, (формат: Мягкая бумажная, 256 стр.) Подробнее... | 2012 | 951 | бумажная книга |
Николас Закас | JavaScript. Оптимизация производительности. Закас Н. | Если вы относитесь к подавляющему большинству веб-разработчиков, то наверняка широко применяете JavaScript для создания интерактивных веб-приложений с малым временемотклика. Проблема состоит в том… — СИМВОЛ-ПЛЮС, (формат: Мягкая бумажная, 256 стр.) Подробнее... | 2012 | 1319 | бумажная книга |
См. также в других словарях:
История Mozilla Firefox — Объединить Mozilla Firefox … Википедия
Mozilla Firefox — Запрос «Firefox» перенаправляется сюда; см. также другие значения … Википедия
jQuery — Тип JavaScript библиотека Разработчик Джон Резиг Написана на JavaScript Операционная система Кроссплатфо … Википедия
Python — У этого термина существуют и другие значения, см. Python (значения). Python Класс языка: му … Википедия
Список версий Android — Основная статья: Android Логотип Android, изображающий стилизованного робота Android свободная операционная … Википедия
JQuery — Тип JavaScript библиотека Разработчик Джон Ресиг Написана на JavaScript … Википедия
Пайтон — Python Класс языка: функциональный, объектно ориентированный, императивный, аспектно ориентированный Тип исполнения: интерпретация байт кода, компиляция в MSIL, компиляция в байт код Java Появился в: 1990 г … Википедия
Adobe Flash — У этого термина существуют и другие значения, см. Flash. Сюда перенаправляется запрос «Adobe Flash Player». На эту тему нужна отдельная статья. Adobe Flash … Википедия
Java — Иное название этого понятия «Ява»; см. также другие значения. Не следует путать с JavaScript. Java Класс языка … Википедия
Удаление мёртвого кода — В теории компиляторов удалением мёртвого кода (англ. dead code elimination, DCE) называется оптимизация, удаляющая мёртвый код. Мёртвым кодом (так же бесполезным кодом) называют код, исполнение которого не влияет на вывод программы, все… … Википедия
Tcl — Запрос «TCL» перенаправляется сюда; о минидистрибутиве Linux см. Tiny Core Linux. Tcl Семантика: императивный … Википедия
dic.academic.ru
Николас Закас JavaScript. Оптимизация производительности
alexkyz87 28.02.2018 4 Комментарии
Здесь вы можете прочитать краткую аннотацию к этой книге Николас Закас JavaScript. Оптимизация производительности. Вы узнаете, как ускорить выполнение, загрузку, операции с деревом DOM, работу страницы в целом и многое другое. Проблема состоит в том, что строки с программным кодом на языке JavaScript могут замедлять работу приложений. Если вы относитесь к подавляющему большинству веб-разработчиков, то наверняка широко применяете JavaScript для создания интерактивных веб-приложений с малым временем отклика. Эта книга откроет вам приемы и стратегии, которые помогут в ходе разработки устранить узкие места, влекущие за собой снижение производительности. Николас Закас, программист из компании Yahoo!, специализирующийся на разработке пользовательских интерфейсов веб-приложений, и еще пять экспертов в области использования JavaScript представят оптимальные способы загрузки сценариев и другие приемы программирования, которые помогут вам обеспечить наиболее эффективное и быстрое выполнение программного кода на JavaScript. Книга адресована веб-разработчикам со средним и высоким уровнем владения языком JavaScript, желающим повысить производительность интерфейсов веб-приложений. Вы познакомитесь с наиболее передовыми приемами сборки и развертывания файлов в действующем окружении и с инструментами, которые помогут в поиске проблем. файл Николас Закас JavaScript. Оптимизация производительности опубликовал: alona_gurina.
Подобные файлы
Ким ин Джу Юная королева Джун Т.5
Милан. Карта и путеводитель
Руни Э. Математика за 15 минут
Копусов-Долинин, Алексей Иванович Дорожная шпаргалка водителя: как защитить свои права. 2-е издание
kvk-design.ru
Книга "JavaScript: Оптимизация производительности" (Закас Николас) из жанра JavaScript
JavaScript: Оптимизация производительности
Автор: Закас Николас Жанр: JavaScript Год: 2013 Количество страниц: 256 Формат: PDF (12.80 МБ) Дата загрузки: 28 марта 20162016-09-10 Скачать
| |||
Аннотация Если вы относитесь к подавляющему большинству веб-разработчиков, то наверняка широко применяете JavaScript для создания интерактивных веб-приложений с малым временем отклика. Проблема состоит в том, что строки с программным кодом на языке JavaScript могут замедлять работу приложений. Эта книга откроет вам приемы и стратегии, которые помогут в ходе разработки устранить узкие места, влекущие за собой снижение производительности. Вы узнаете, как ускорить выполнение, загрузку, операции с деревом DOM, работу страницы в целом и многое другое. Николас Закас, программист из компании Yahoo!, специализирующийся на разработке пользовательских интерфейсов веб-приложений, и еще пять экспертов в области использования JavaScript представят оптимальные способы загрузки сценариев и другие приемы программирования, которые помогут вам обеспечить наиболее эффективное и быстрое выполнение программного кода на JavaScript. Вы познакомитесь с наиболее передовыми приемами сборки и развертывания файлов в действующем окружении и с инструментами, которые помогут в поиске проблем. Книга адресована веб-разработчикам со средним и высоким уровнем владения языком JavaScript, желающим повысить производительность интерфейсов веб-приложений. | |||
Комментарии Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикаци. | |||
literu.ru