28. Микрооптимизация
● Use x | 0 instead of Math.floor
● Clear arrays with .length = 0 to avoid creating a new Array
● Use if .. else over switch
● Use TypedArrays for floats or integers (e.g. vectors and matrices)
29. Debouncing
● Реальный вызов происходит только в случае, если с момента последней
попытки прошло время, большее или равное задержке.
● Реальный вызов происходит сразу, а все остальные попытки вызова
игнорируются, пока не пройдет время, большее или равное задержке,
отсчитанной от времени последней попытки.
30. Троттлинг
● выполнение метода не чаще одного раза в
указанный период, даже если он будет вызван
много раз в течение этого периода
102. Жизнь в офлайне
● Файлы хранятся локально
● Online features работают только при наличии
подключения
● Храним данные локально
● HTML5 Filesystem API
109. Еще секьюрити
● Вставка контента через
WebView
● Доступ к удаленным ресурсам
XHR, blob, filesystem
● Шаблонизатор
Прекомпилируемые библиотеки или Mustache
Sandox для вызовов eval/new Function
110. Итог
● Offline
Написание не зависимых приложений
● Could
Храним данные в google хранилищах
● UI/UX
Каждый js-ер хотел сделать нативные окошки
● Доступ к железу
file system/usb
● Не забываем о безопасности