Асинхронная обработка и оптимизация [Кайл Симпсон] (pdf) читать постранично Книга в формате pdf ! Изображения и текст могут не отображаться!
[Настройки текста] [Cбросить фильтры]
Цвет фона черный светло-черный бежевый бежевый 2 персиковый зеленый серо-зеленый желтый синий серый красный белый
Цвет шрифта белый зеленый желтый синий темно-синий серый светло-серый тёмно-серый красный
Размер шрифта 14px 16px 18px 20px 22px 24px
Шрифт Arial, Helvetica, sans-serif "Arial Black", Gadget, sans-serif "Bookman Old Style", serif "Comic Sans MS", cursive Courier, monospace "Courier New", Courier, monospace Garamond, serif Georgia, serif Impact, Charcoal, sans-serif "Lucida Console", Monaco, monospace "Lucida Sans Unicode", "Lucida Grande", sans-serif "MS Sans Serif", Geneva, sans-serif "MS Serif", "New York", sans-serif "Palatino Linotype", "Book Antiqua", Palatino, serif Symbol, sans-serif Tahoma, Geneva, sans-serif "Times New Roman", Times, serif "Trebuchet MS", Helvetica, sans-serif Verdana, Geneva, sans-serif
Насыщенность шрифта жирный
Обычный стиль курсив Ширина текста 400px 500px 600px 700px 800px 900px 1000px 1100px 1200px Показывать меню Убрать меню Абзац 0px 4px 12px 16px 20px 24px 28px 32px 36px 40px
Межстрочный интервал 18px 20px 22px 24px 26px 28px 30px 32px
Async & Performance
Kyle Simpson
ВЫ НЕ ЗНАЕТЕ
АСИНХРОННАЯ
ОБРАБОТКА
ОПТИМИЗАЦИЯ
КАЙЛ СИМПСОН
ББК 32.988.02-018
УДК 004.738.5
С37
Симпсон К.
С37 {Вы не знаете JS} Асинхронная обработка и оптимизация. — СПб.:
Питер, 2019. — 352 с. — (Серия «Бестселлеры O’Reilly»).
ISBN 978-5-4461-1313-2
Каким бы опытом программирования на JavaScript вы ни обладали, скорее всего,
вы не понимаете язык в полной мере. Это лаконичное, но при этом глубоко продуманное руководство посвящено новым асинхронным возможностям и средствам
повышения производительности, которые позволяют создавать сложные одностраничные веб-приложения и избежать при этом «кошмара обратных вызовов».
Как и в других книгах серии «Вы не знаете JS», вы познакомитесь с нетривиальными особенностями языка, которых так боятся программисты. Только вооружившись знаниями, можно достичь истинного мастерства.
16+ (В соответствии с Федеральным законом от 29 декабря 2010 г. № 436-ФЗ.)
ББК 32.988.02-018
УДК 004.738.5
Права на издание получены по соглашению с O’Reilly. Все права защищены. Никакая часть
данной книги не может быть воспроизведена в какой бы то ни было форме без письменного
разрешения владельцев авторских прав.
Информация, содержащаяся в данной книге, получена из источников, рассматриваемых издательством как надежные. Тем не менее, имея в виду возможные человеческие или технические ошибки, издательство не может гарантировать абсолютную точность и полноту приводимых сведений и не несет ответственности за возможные ошибки, связанные с использованием книги. Издательство не несет ответственности за доступность материалов, ссылки на
которые вы можете найти в этой книге. На момент подготовки книги к изданию все ссылки на
интернет-ресурсы были действующими.
ISBN 978-1491904220 англ.
ISBN 978-5-4461-1313-2
Authorized Russian translation of the English edition of You
Don’t Know JS: Async & Performance (ISBN 9781491904220)
© 2015 Getify Solutions, Inc.
This translation is published and sold by permission of O’Reilly
Media, Inc., which owns or controls all rights to publish and sell
the same
© Перевод на русский язык ООО Издательство «Питер»,
2019
© Издание на русском языке, оформление ООО Издательство «Питер», 2019
© Серия «Бестселлеры O’Reilly», 2019
Оглавление
Предисловие. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Задача . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
О книге. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Типографские соглашения . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Использование программного кода примеров . . . . . . . . . . . . . . 16
От издательства. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Глава 1. Асинхронность: сейчас и потом. . . . . . . . . . . . . 18
Блочное строение программы. . . . . . . . . . . . . . . . . . . . . . . . . . 19
Асинхронный вывод в консоль. . . . . . . . . . . . . . . . . . . . . . . 22
Цикл событий. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Параллельные потоки. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Выполнение до завершения . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Параллельное выполнение. . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Отсутствие взаимодействий. . . . . . . . . . . . . . . . . . . . . . . . . 36
Взаимодействия. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Кооперация. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Задания . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Упорядочение команд. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Итоги. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Глава 2. Обратные вызовы . . . . . . . . . . . . . . . . . . . . . . . . 52
Продолжения. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Последовательное мышление. . . . . . . . . . . . . . . . . . . . . . . . . . 55
6
Оглавление
Работа и планирование. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Вложенные/сцепленные обратные вызовы. . . . . . . . . . . . . . 59
Проблемы доверия. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
История о пяти обратных вызовах. . . . . . . . . . . . . . . . . . . . . . . 66
Не только в чужом коде. . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Попытки спасти обратные вызовы. . . . . . . . . . . . . . . . . . . . . . . 71
Итоги. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Глава 3. Обещания. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Что такое обещание? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Будущее значение. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Событие завершения. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
События обещаний . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Утиная типизация с методом then()(thenable) . . . . . . . . . . . . . . 93
Доверие Promise. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Слишком ранний обратный
Последние комментарии
9 часов 54 минут назад
10 часов 49 минут назад
10 часов 52 минут назад
21 часов 43 минут назад
21 часов 45 минут назад
1 день 10 часов назад