Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Загрузка и Инициализация JavaScript
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Mikhail Davydov
October 11, 2012
Programming
270
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Загрузка и Инициализация JavaScript
Video
https://www.youtube.com/watch?v=ra5J9R2WH5I
Mikhail Davydov
October 11, 2012
More Decks by Mikhail Davydov
See All by Mikhail Davydov
Back To Text UI
azproduction
3
330
Promise – это не больно
azproduction
0
210
Components Now!
azproduction
3
170
ШРИ - JavaScript Event Model
azproduction
0
230
ШРИ - Code Style
azproduction
0
150
HTML5 Camp - JavaScript на фронте и в тылу
azproduction
0
330
Code Fest - Работает? Стабильно? Эффективно?
azproduction
0
200
UWDC - Модули и сборка JavaScript
azproduction
0
250
Шаблонизация
azproduction
0
150
Other Decks in Programming
See All in Programming
Haskell/Servantを通してWebミドルウェアを捉え直す
pizzacat83
1
630
<title><a id="</title>君はこのHTMLをパースできるか"></a></title> #雑LT_study
pizzacat83
0
120
Go言語とトイモデルで学ぶTransformerの気持ち / fukuokago23-transformer
monochromegane
0
150
20260722_microCMSで考える、AI時代のコンテンツ運用設計
yosh1
0
170
そこに3びきプロダクトがいるじゃろう——生成AI時代における“価値が届かない理由”の構造
kosuket
0
320
광주소프트웨어마이스터고등학교 DevFest 특강 - 바이브 코딩 시대에서 주니어 개발자로 살아남는 방법
utilforever
1
160
全PRの83%がAIレビューだけでマージできるようになった開発組織はその後どうなったか
athug
0
630
What's New in Android 2026
veronikapj
0
240
音楽のための関数型プログラミング言語mimiumにおける多段階計算の活用
tomoyanonymous
1
370
【やさしく解説 設計編・中級 #4】ルールの寿命と、システムの年輪
panda728
PRO
2
180
AI時代、エンジニアはどう育つのか -未経験エンジニアの成長を間近で見て考えたこと-
thasu0123
0
200
OpenSpecのproposalにbrainstormingを持たせてみた
tigertora7571
1
150
Featured
See All Featured
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.3k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
190
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
360
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
350
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
410
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
270
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
820
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
エンジニアに許された特別な時間の終わり
watany
108
250k
How to Think Like a Performance Engineer
csswizardry
28
2.7k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
460
Transcript
Загрузка и инициализация JavaScript приложения Михаил Давыдов @azproduction JavaScript и
Node.js разработчик Dump-IT, Екатеринбург, 25 мая 2012
2 Мобильный веб
3 Не весь код используется 40 %
4 Браузерный кэш
5 Тестовый прототип, 7 Кб/с http://tinyurl.com/loader-test
<script src="main.js"> </script> <script src="module.js"> </script> 6 Последовательная загрузка и
исполнение
7 9 Запросов 131.5 Кб 18 с DOM 17.5 c
<script src="main.js" async> </script> <script src="module.js" async> </script> 8 Параллельная
загрузка и исполнение
9 9 Запросов 131.5 Кб 18 с DOM 1.5 c
$LAB .script('main.js') .wait() .script('module.js'); 10 Параллельная загрузка, последовательный запуск http://labjs.com/
11 10 Запросов 136.9 Кб 18.2 с DOM 3.7 c
↑0.2 ↑5.4 ↑1
$ cat **/*.js > main.js $ java -jar yuicompressor.jar \
main.js -o main.min.js 12 Собираем и пакуем http://tinyurl.com/yui-compressor
13 6 Запросов 48 Кб 9.5 с DOM 9.1 c
↓8.5 ↓83.5 ↓3
14 AppCache — оффлайн хранилище
<html manifest="example.appcache"> </html> CACHE MANIFEST # v1 - 2011-08-13 http://example.com/index.html
http://example.com/main.js 15 AppCache Манифест
16 Преимущества AppCache 1. Надежное кэширование 2. Работа оффлайн 3.
Простое управление версиями 4. Своевременное обновление http://tinyurl.com/mdn-appcache
17 Кэш — 0 запросов, 0 Кб
AMD — Асинхронная декларация модулей 18 Выборочная загрузка http://requirejs.org/
19 Преимущества АMD 1. Грузим основные части 2. Остальное по
необходимости 3. Автодогрузка зависимостей 4. ... 5. PROFIT
20 8 Запросов 31.5 7.4 с DOM 5.1 c +2
+30 Кб +4 c ↓2.1 ↓16.5 ↑2
LMD — Ленивая декларация модулей 21 Ленивая загрузка и инициализация
https://github.com/azproduction/lmd
22 Преимущества LMD 1. Ленивая инициализация 2. Node.js-подобные модули 3.
Встроенный сборщик и упаковщик 4. Гибкий объем библиотеки 5. Горячая сборка проекта
23 6 Запросов 18 5.1 с DOM 5.1 c +2
+30 Кб +4 c ↓2.3 ↓13.5 ↓2
9 131.5 Кб 18 с 24 6 Запросов 18 5.1
с DOM 5.1 c ↓12.9 ↓113 ↓3
25 1. Используйте AppCache http://tinyurl.com/mdn-appcache http://tinyurl.com/confessjs 2. Соберите скрипты 3.
LMD или AMD +
26 + 1. Используйте AppCache 2. Соберите скрипты http://tinyurl.com/yui-compressor 3.
LMD или AMD
27 + 1. Используйте AppCache 2. Соберите скрипты 3. LMD
или AMD https://github.com/azproduction/lmd http://requirejs.org/
28 OVER 9000 Achievement unlocked! JS
29 Вопросы? LMD Confess Require YUIC CanIUse https://github.com/azproduction/lmd http://tinyurl.com/confessjs http://requirejs.org/
http://tinyurl.com/yui-compressor http://caniuse.com/ Тест http://tinyurl.com/loader-test
Михаил Давыдов JavaScript и Node.js разработчик
[email protected]
Twitter @azproduction Habr
http://azproduction.habrahabr.ru GitHub https://github.com/azproduction 30