SlideShare a Scribd company logo
Submit Search
Upload
Dump-IT Загрузка и инициализация JavaScript
Report
Share
Mikhail Davydov
JavaScript & Node.js Developer at Yandex
Follow
•
0 likes
•
730 views
1
of
30
Dump-IT Загрузка и инициализация JavaScript
•
0 likes
•
730 views
Report
Share
Download Now
Download to read offline
Technology
Dump-IT Загрузка и инициализация JavaScript
Read more
Mikhail Davydov
JavaScript & Node.js Developer at Yandex
Follow
Recommended
Конструктор / Денис Паясь (Яндекс) by
Конструктор / Денис Паясь (Яндекс)
Ontico
1.3K views
•
67 slides
#11 "Отзывчивый UI без блокировки Event Loop" Денис Речкунов by
#11 "Отзывчивый UI без блокировки Event Loop" Денис Речкунов
JSib
663 views
•
15 slides
#6 "Изоморфный фреймворк Catberry.js" Денис Речкунов by
#6 "Изоморфный фреймворк Catberry.js" Денис Речкунов
JSib
2.1K views
•
42 slides
"Prom.ua shopping cart workflow as a microfrontend", Danylo Kazymyrov by
"Prom.ua shopping cart workflow as a microfrontend", Danylo Kazymyrov
Fwdays
200 views
•
79 slides
Знакомство с WebAssembly by
Знакомство с WebAssembly
Nikita Zimin
365 views
•
33 slides
non-blocking java script by
non-blocking java script
Ecommerce Solution Provider SysIQ
5.9K views
•
45 slides
More Related Content
What's hot
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта by
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта
ITCrowd Almaty
993 views
•
42 slides
Разработка API для большого, нагруженного сервиса by
Разработка API для большого, нагруженного сервиса
endeveit
1.7K views
•
30 slides
Современный фронтенд -- как не утонуть в море хайпа? by
Современный фронтенд -- как не утонуть в море хайпа?
Vladimir Malyk
1.6K views
•
50 slides
Инфраструктура распределенных приложений на Node.js by
Инфраструктура распределенных приложений на Node.js
Stanislav Gumeniuk
421 views
•
75 slides
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru) by
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Ontico
3.1K views
•
61 slides
Vagrant puppet by
Vagrant puppet
Peri Innovations
497 views
•
34 slides
What's hot
(20)
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта by ITCrowd Almaty
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта
ITCrowd Almaty
•
993 views
Разработка API для большого, нагруженного сервиса by endeveit
Разработка API для большого, нагруженного сервиса
endeveit
•
1.7K views
Современный фронтенд -- как не утонуть в море хайпа? by Vladimir Malyk
Современный фронтенд -- как не утонуть в море хайпа?
Vladimir Malyk
•
1.6K views
Инфраструктура распределенных приложений на Node.js by Stanislav Gumeniuk
Инфраструктура распределенных приложений на Node.js
Stanislav Gumeniuk
•
421 views
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru) by Ontico
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Ontico
•
3.1K views
Vagrant puppet by Peri Innovations
Vagrant puppet
Peri Innovations
•
497 views
Сергей Яковлев "Phalcon 2 - стабилизация и производительность" by Fwdays
Сергей Яковлев "Phalcon 2 - стабилизация и производительность"
Fwdays
•
2.2K views
Node.js (RichClient) by Serge Shirokov
Node.js (RichClient)
Serge Shirokov
•
1.4K views
Как сделать проект с 1 500 000 просмотров в сутки, который не ломается - IzhD... by Egor Konovalov
Как сделать проект с 1 500 000 просмотров в сутки, который не ломается - IzhD...
Egor Konovalov
•
664 views
Maven 3 : уличная магия by Aleksey Solntsev
Maven 3 : уличная магия
Aleksey Solntsev
•
5.5K views
Maven как средство сборки проекта by Yova Stoika
Maven как средство сборки проекта
Yova Stoika
•
2.1K views
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake) by Ontico
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Ontico
•
5.8K views
Быстрый рендеринг с DOM шаблонизаторами / Борис Каплуновский (aviasales.ru) by Ontico
Быстрый рендеринг с DOM шаблонизаторами / Борис Каплуновский (aviasales.ru)
Ontico
•
5.3K views
RootConf 2015: Как Vagrant и Chef ускорили разработку в несколько раз by Timur Batyrshin
RootConf 2015: Как Vagrant и Chef ускорили разработку в несколько раз
Timur Batyrshin
•
555 views
QA MeetUp - Тимур Батыршин: "Тестирование серверной конфигурации" by Provectus
QA MeetUp - Тимур Батыршин: "Тестирование серверной конфигурации"
Provectus
•
175 views
Cистемы автоматической сборки проектов (Полина Фоминых) by Кафедра высокопроизводительных компьютерных технологий ИМКН УрФУ
Cистемы автоматической сборки проектов (Полина Фоминых)
Кафедра высокопроизводительных компьютерных технологий ИМКН УрФУ
•
1.2K views
#12 "Создание двух desktop приложений на node-webkit и Electron” Михаил Реенко by JSib
#12 "Создание двух desktop приложений на node-webkit и Electron” Михаил Реенко
JSib
•
903 views
QA Fest 2019. Александр Хотемской. WebdriverIO + Puppeteer. Double gun - doub... by QAFest
QA Fest 2019. Александр Хотемской. WebdriverIO + Puppeteer. Double gun - doub...
QAFest
•
882 views
Стажировка-2014, занятие 8. Обзор Sails framework (Node.js) by 7bits
Стажировка-2014, занятие 8. Обзор Sails framework (Node.js)
7bits
•
350 views
Алексей Фомкин, Практическое применение Web Workers by Aleksey Fomkin
Алексей Фомкин, Практическое применение Web Workers
Aleksey Fomkin
•
385 views
Viewers also liked
JavaScript. Basics (in russian) by
JavaScript. Basics (in russian)
Mikhail Davydov
602 views
•
51 slides
JavaScript. Loops and functions (in russian) by
JavaScript. Loops and functions (in russian)
Mikhail Davydov
680 views
•
59 slides
JavaScript. Event Loop and Timers (in russian) by
JavaScript. Event Loop and Timers (in russian)
Mikhail Davydov
1.5K views
•
76 slides
Ajax and Transports (in russian) by
Ajax and Transports (in russian)
Mikhail Davydov
570 views
•
31 slides
JavaScript. OOP (in russian) by
JavaScript. OOP (in russian)
Mikhail Davydov
727 views
•
77 slides
Dart - светлая сторона силы? by
Dart - светлая сторона силы?
Mikhail Davydov
599 views
•
29 slides
Viewers also liked
(11)
JavaScript. Basics (in russian) by Mikhail Davydov
JavaScript. Basics (in russian)
Mikhail Davydov
•
602 views
JavaScript. Loops and functions (in russian) by Mikhail Davydov
JavaScript. Loops and functions (in russian)
Mikhail Davydov
•
680 views
JavaScript. Event Loop and Timers (in russian) by Mikhail Davydov
JavaScript. Event Loop and Timers (in russian)
Mikhail Davydov
•
1.5K views
Ajax and Transports (in russian) by Mikhail Davydov
Ajax and Transports (in russian)
Mikhail Davydov
•
570 views
JavaScript. OOP (in russian) by Mikhail Davydov
JavaScript. OOP (in russian)
Mikhail Davydov
•
727 views
Dart - светлая сторона силы? by Mikhail Davydov
Dart - светлая сторона силы?
Mikhail Davydov
•
599 views
Components now! (in russian) by Mikhail Davydov
Components now! (in russian)
Mikhail Davydov
•
851 views
Introduction in Node.js (in russian) by Mikhail Davydov
Introduction in Node.js (in russian)
Mikhail Davydov
•
1.5K views
JavaScript. Event Model (in russian) by Mikhail Davydov
JavaScript. Event Model (in russian)
Mikhail Davydov
•
789 views
JavaScript. Async (in Russian) by Mikhail Davydov
JavaScript. Async (in Russian)
Mikhail Davydov
•
688 views
Components now! by Mikhail Davydov
Components now!
Mikhail Davydov
•
690 views
Similar to Dump-IT Загрузка и инициализация JavaScript
Изоморфные react-приложения by
Изоморфные react-приложения
Denis Izmaylov
3.6K views
•
115 slides
Симаков Алексей - Системы управления кластерами by
Симаков Алексей - Системы управления кластерами
Yandex
815 views
•
46 slides
Системы автоматизированной сборки (Lecture 05 – gradle) by
Системы автоматизированной сборки (Lecture 05 – gradle)
Noveo
323 views
•
32 slides
"Изоморфный D3 + MALEVICH", Алексей Охрименко, MoscowJS 25 by
"Изоморфный D3 + MALEVICH", Алексей Охрименко, MoscowJS 25
MoscowJS
608 views
•
27 slides
GitLab, Prometheus и Grafana с Kubernetes by
GitLab, Prometheus и Grafana с Kubernetes
Victor Login
977 views
•
39 slides
Moscow js 26 webpack by
Moscow js 26 webpack
lgordey
465 views
•
41 slides
Similar to Dump-IT Загрузка и инициализация JavaScript
(20)
Изоморфные react-приложения by Denis Izmaylov
Изоморфные react-приложения
Denis Izmaylov
•
3.6K views
Симаков Алексей - Системы управления кластерами by Yandex
Симаков Алексей - Системы управления кластерами
Yandex
•
815 views
Системы автоматизированной сборки (Lecture 05 – gradle) by Noveo
Системы автоматизированной сборки (Lecture 05 – gradle)
Noveo
•
323 views
"Изоморфный D3 + MALEVICH", Алексей Охрименко, MoscowJS 25 by MoscowJS
"Изоморфный D3 + MALEVICH", Алексей Охрименко, MoscowJS 25
MoscowJS
•
608 views
GitLab, Prometheus и Grafana с Kubernetes by Victor Login
GitLab, Prometheus и Grafana с Kubernetes
Victor Login
•
977 views
Moscow js 26 webpack by lgordey
Moscow js 26 webpack
lgordey
•
465 views
MoscowJS 26 webpack presentation by lgordey
MoscowJS 26 webpack presentation
lgordey
•
323 views
Денис Измайлов, JavaScript сегодня: React, Redux и новая реальность by ScrumTrek
Денис Измайлов, JavaScript сегодня: React, Redux и новая реальность
ScrumTrek
•
1.6K views
JavaScript сегодня: React, Redux и новая реальность by Denis Izmaylov
JavaScript сегодня: React, Redux и новая реальность
Denis Izmaylov
•
2.1K views
Движение по хрупкому дну / Сергей Караткевич (servers.ru) by Ontico
Движение по хрупкому дну / Сергей Караткевич (servers.ru)
Ontico
•
701 views
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай... by JSib
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
JSib
•
5.3K views
2017-03-11 01 Игорь Родионов. Docker swarm vs Kubernetes by Омские ИТ-субботники
2017-03-11 01 Игорь Родионов. Docker swarm vs Kubernetes
Омские ИТ-субботники
•
1.2K views
Ruby gui by Alexander Kirillov
Ruby gui
Alexander Kirillov
•
1.1K views
Регрессионное тестирование на lenta.ru, Кондратенко Павел, Rambler&Co, Moscow... by MoscowJS
Регрессионное тестирование на lenta.ru, Кондратенко Павел, Rambler&Co, Moscow...
MoscowJS
•
532 views
Jiramania презентации @augspb by Gonchik Tsymzhitov
Jiramania презентации @augspb
Gonchik Tsymzhitov
•
165 views
Изоморфные React-приложения производительность и масштабирование / Денис Изма... by Ontico
Изоморфные React-приложения производительность и масштабирование / Денис Изма...
Ontico
•
1.8K views
Процесс разработки и тестирования с Docker + gitlab ci by Александр Сигачев
Процесс разработки и тестирования с Docker + gitlab ci
Александр Сигачев
•
592 views
JavaScript-модули "из прошлого в будущее" by oelifantiev
JavaScript-модули "из прошлого в будущее"
oelifantiev
•
1.7K views
Презентация «WebMarkupMin – HTML-минификатор для платформы .NET» с MskDotNet ... by Andrey Taritsyn
Презентация «WebMarkupMin – HTML-минификатор для платформы .NET» с MskDotNet ...
Andrey Taritsyn
•
322 views
Владимир Кузнецов — Прототип сайта: разработка и развёртывание by Yandex
Владимир Кузнецов — Прототип сайта: разработка и развёртывание
Yandex
•
1.8K views
Dump-IT Загрузка и инициализация JavaScript
1.
Загрузка и инициализация JavaScript
приложения Михаил Давыдов @azproduction JavaScript и Node.js разработчик Dump-IT, Екатеринбург, 25 мая 2012
2.
Мобильный веб 2
3.
40
% Не весь код используется 3
4.
Браузерный кэш 4
5.
Тестовый прототип, 7
Кб/с http://tinyurl.com/loader-test 5
6.
Последовательная загрузка и
исполнение <script src="main.js"> </script> <script src="module.js"> </script> 6
7.
9 Запросов
131.5 Кб 18 с DOM 17.5 c 7
8.
Параллельная загрузка и
исполнение <script src="main.js" async> </script> <script src="module.js" async> </script> 8
9.
9 Запросов
131.5 Кб 18 с DOM 1.5 c 9
10.
Параллельная загрузка, последовательный
запуск $LAB .script('main.js') .wait() .script('module.js'); http://labjs.com/ 10
11.
10 Запросов
↑1 136.9 Кб ↑5.4 18.2 с ↑0.2 DOM 3.7 c 11
12.
Собираем и пакуем
$ cat **/*.js > main.js $ java -jar yuicompressor.jar main.js -o main.min.js http://tinyurl.com/yui-compressor 12
13.
6 Запросов
↓3 48 Кб ↓83.5 9.5 с ↓8.5 DOM 9.1 c 13
14.
AppCache — оффлайн
хранилище 14
15.
AppCache Манифест <html
manifest="example.appcache"> </html> CACHE MANIFEST # v1 - 2011-08-13 http://example.com/index.html http://example.com/main.js 15
16.
Преимущества AppCache 1. Надежное
кэширование 2. Работа оффлайн 3. Простое управление версиями 4. Своевременное обновление http://tinyurl.com/mdn-appcache 16
17.
Кэш — 0
запросов, 0 Кб 17
18.
Выборочная загрузка
AMD — Асинхронная декларация модулей http://requirejs.org/ 18
19.
Преимущества АMD 1. Грузим
основные части 2. Остальное по необходимости 3. Автодогрузка зависимостей 4. ... 5. PROFIT 19
20.
8 Запросов
+2 ↑2 31.5 +30 Кб ↓16.5 7.4 с +4 c ↓2.1 DOM 5.1 c 20
21.
Ленивая загрузка и
инициализация LMD — Ленивая декларация модулей https://github.com/azproduction/lmd 21
22.
Преимущества LMD 1. Ленивая
инициализация 2. Node.js-подобные модули 3. Встроенный сборщик и упаковщик 4. Гибкий объем библиотеки 5. Горячая сборка проекта 22
23.
6 Запросов
+2 ↓2 18 +30 Кб ↓13.5 5.1 с +4 c ↓2.3 DOM 5.1 c 23
24.
6 Запросов
9 ↓3 18 131.5 Кб ↓113 5.1 с 18 с ↓12.9 DOM 5.1 c 24
25.
1. Используйте AppCache
+ http://tinyurl.com/mdn-appcache http://tinyurl.com/confessjs 2. Соберите скрипты 3. LMD или AMD 25
26.
1. Используйте AppCache 2.
Соберите скрипты + http://tinyurl.com/yui-compressor 3. LMD или AMD 26
27.
1. Используйте AppCache 2.
Соберите скрипты + 3. LMD или AMD https://github.com/azproduction/lmd http://requirejs.org/ 27
28.
OVER 9000
JS Achievement unlocked! 28
29.
Вопросы? Тест http://tinyurl.com/loader-test LMD
https://github.com/azproduction/lmd Confess http://tinyurl.com/confessjs Require http://requirejs.org/ YUIC http://tinyurl.com/yui-compressor CanIUse http://caniuse.com/ 29
30.
Михаил Давыдов
JavaScript и Node.js разработчик azproduction@yandex-team.ru Twitter @azproduction Habr http://azproduction.habrahabr.ru GitHub https://github.com/azproduction 30