Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Давайте я расскажу вам страшную историю. Есть такой проект, как Патреон. И предлагает он вставить на свой сайт кнопку, ведущую на страницу подписки:
<a href="https://www.patreon.com/bePatron?u=27084182" data-patreon-widget-type="become-patron-button">Become a Patron!</a>
<script async src="https://c6.patreon.com/becomePatronButton.bundle.js"></script>Что делает скрипт? Он превращает скучную ссылку в элегантную кнопку:

Скрипт весит 110кб в сжатом виде и 415кб в несжатом минифицированном. Содержит он:
Плюс 10кб стилей и 30кб шрифтов, но это уже сущие мелочи.
И это они ещё соптимизировали. В прошлый раз, когда я смотрел, скрипты весили около мегабайта.

Уверен, порт игры был бы простым, примитивным
высказывание спорное
а еще например, я сохранил эту страницу на диск
и она весит 243 КБ
а картинки + js (т.е. всё прочее) еще 3,2МБ
интересно как автор замерил размер той страницы
но это бред, из 900 кб(html+css) сам html только 25%
css нормально кэшируется, даже если бы его было суммарно на несколько мегабайт — ничего в этом страшного не было бы
поэтому тема спорная, кэш никто не отменял
250 КБ для 2016 — мелочь.
Если поднапрячь память, то еще когда я учился в школе началось нытьё, что некоторые веб-страницы весят около мегабайта
но если мегабайт в 2005 было овердофига, то 3 мегабайта в 2016 — ерунда.
скорости выросли в десятки раз
специально порылся, нашел мастера и маргариту
ansi — размер 850КБ
utf-8 — размер 1,4МБ
сайты-то сейчас на utf-8 делают, опять же сравнение с другйо кодировкой некорректно
Это почти на 100 КБ больше, чем полный текст «Мастера и Маргариты», наполненного мистикой и комедией романа Булгакова о Дьяволе, который наведывается в Москву со своей свитой (включая огромного кота!) во время Большого террора 1937 года.
Особо стоит отметить и появление двух «новеньких» гостей на балу у сатаны, имен которых Коровьев якобы не знает. Один из них – автор плана убийства человека, «разоблачений которого он чрезвычайно опасался» (с. 686), с помощью яда, которым обрызгали стены кабинета. Второй – исполнитель. Этот изысканный способ убийства и анонимность гостей на балу ассоциируются с попыткой Ягоды отравить Ежова, стены и шторы кабинета которого были, по его приказанию, обрызганы ртутью (ртуть добавили и в побелку). Правда, желаемого результата Ягода не добился. Но присутствие Ягоды на балу у Воланда связано уже с концом 30-х годов – он мог там появиться только после смерти в 1937 году.http://www.e-reading.club/chapter.php/82995/6/Pozdnyaeva_-_Voland_i_Margarita.html
Из реалий 1930-х годов Б. Гаспаров отмечает неоднократное упоминание в романе имени А. С. Пушкина в связи со столетием гибели поэта в 1937 году. В торжествах по этому поводу активное участие принял Булгаков (пьеса «Последние дни»).
В ней описывается куча проблем современного веба, не только на стороне клиентского кода, но и на стороне дизайна, рекламы и многого другого.
firstChild/nextSibling/children/childNodes и т.п.) приводи к неминуемым провалам в производительности, даже элементарное element.myProp = 123 — проблема. Именно поэтому, самые быстрые реализации VDOM использую максимум createElement/insertBefore/replaceChild/removeChild и только в случае крайней необходимости, некоторые даже пытаются переиспользовать ранее удаленные элементы, чтобы лишний раз не вызывать createElement.тот же NaCL
Совершенно не "тот же NaCL".
принципиально всё вами сказанное про WebAssembly применимо и для asm.js
да, я знаю, что это разные технологии и в чем их ключевые отличия
не приводит, и присваивание кастомных дом свойств — не проблема
childNodes vs. firstChild + nextSibling, второй будет быстрей.можно делать минимум взаимодействий с DOM и без виртуального дома.
var greeting = new $jin2_atom( 'Hello' )
var bodyRenderer = new $jin2_atom( () => {
document.body.innerText = greeting.get()
} )
bodyRenderer.pull()
setTimeout( () => { greeting.set( 'Hello, world' ) } , 1000 )А про vdom — зависит от того какую реализацию vdom возьмём
не приводит, не проблема :)
firstChild/nextSibling/parentNode всё равно медленней, чем не вызывать их вовсе, а ходить по vtree, вы же сами это прекрасно знаете.https://github.com/localvoid/kivi
https://github.com/localvoid/uix
но относительно всего остального оверхэда в конечном приложении — это будет не так сильно заметно
forEach/map/etc, bind, EventEmitter и так далее. Очень многое можно реально убыстрить, но этим должен браузер делать, а не библиотека Х.для тестирования своих либ

Requests: 352
Your website is faster than 51% of all tested websites

Оптимизировать размер? Нам что, время больше некуда девать.
Кризис ожирения сайтов