8

Click here to load reader

WebCamp: Developer Day: Оптимизации сайтов/приложений для мобильных платформ - Игорь Шалимов

Embed Size (px)

DESCRIPTION

Оптимизации сайтов/приложений для мобильных платформ Игорь Шалимов О расстановке приоритетов в реализации архитектуры RAD.js; о оптимизации DOM и работы с ним; о ситуациях когда уже оптимизировано все: узкие места repaint\reflow и другие дорогие мелочи.

Citation preview

Page 1: WebCamp: Developer Day: Оптимизации сайтов/приложений для мобильных платформ - Игорь Шалимов

Оптимизации сайтов\приложений для мобильных платформ

Page 2: WebCamp: Developer Day: Оптимизации сайтов/приложений для мобильных платформ - Игорь Шалимов

Что общего у мобильных сайтов и приложений (phonegap)?

● плохой интернет ● маленький экран● HTML / JS

Page 3: WebCamp: Developer Day: Оптимизации сайтов/приложений для мобильных платформ - Игорь Шалимов

HTML, который не смог

● заверни в div с position : relative;● backface-visibility : hidden;● translateZ(0);● rotateZ(360deg);● -webkit-font-smoothing: antialiased;● before/after-элемент у placeholder о_О

Page 4: WebCamp: Developer Day: Оптимизации сайтов/приложений для мобильных платформ - Игорь Шалимов

HTML is AWESOME

Page 5: WebCamp: Developer Day: Оптимизации сайтов/приложений для мобильных платформ - Игорь Шалимов

Короткая справка

● repaint – перерисовка области экрана, обычно обходится достаточно дешево

● reflow – пересчет стилей отображения, затрагивает не только изменяемый элемент, но и дерево родителей

Page 6: WebCamp: Developer Day: Оптимизации сайтов/приложений для мобильных платформ - Игорь Шалимов

Тривиальные методы борьбы с reflow

● Не усложнять DOM● Использовать классы вместо inline-стилей● Не анимировать элементы без

position:absolute или position:fixed● Use detached DOM elements, Luke!

(measuring containers, etc.)● no huge tables

Page 7: WebCamp: Developer Day: Оптимизации сайтов/приложений для мобильных платформ - Игорь Шалимов

Не самые тривиальные методы борьбы с reflow

● Не злоупотреблять offsetHeight/offsetWidth, offsetTop/offsetLeft

● Минимизировать количество применяемых стилей

var left = 10,

top = 10;

el.style.left = left + "px";

el.style.top = top + "px";

el.style.cssText += "; left: " + left + "px; top: " + top + "px;";

Page 8: WebCamp: Developer Day: Оптимизации сайтов/приложений для мобильных платформ - Игорь Шалимов

Немного о RAD.js;

● backbone хорош● достаточно хорош● мы сейчас не об enterprise● сообщения и прозрачная связанность рулят