29
1 ANGULAR.JS Проблемы с производительностью и способы их решения

Проблемы с производительностью приложений на AngularJS и способы их решения

Embed Size (px)

Citation preview

Page 1: Проблемы с производительностью приложений на AngularJS и способы их решения

1

ANGULAR.JS

Проблемы с производительностью и способы их решения

Page 2: Проблемы с производительностью приложений на AngularJS и способы их решения

2

Anastasiya Rybik

Software Engineer,

EPAM Systems

Page 3: Проблемы с производительностью приложений на AngularJS и способы их решения

3

ANGULARJS?

ЗА ЧТО МЫ ЛЮБИМ

Page 4: Проблемы с производительностью приложений на AngularJS и способы их решения

4

Two-Way Data Binding

Template

View

Model

Continuous Updates

Model in Single-Source-of-Truth

Compile

Change to Model

updates View

Change to View

updates Model

Page 5: Проблемы с производительностью приложений на AngularJS и способы их решения

5

Основные понятияОсновные понятия

DIGEST CYCLEWATCHER

DIRECTIVE SCOPE

Page 6: Проблемы с производительностью приложений на AngularJS и способы их решения

6

Основные понятияОсновные понятия

Directive ‘Smart Input’

Page 7: Проблемы с производительностью приложений на AngularJS и способы их решения

7

Как работает data-binding?

ACTIONUPDATE

MODEL

VIEW IS

UPDATED

Page 8: Проблемы с производительностью приложений на AngularJS и способы их решения

8

Как работает data-binding?

ACTIONUPDATE

MODELVIEW IS

UPDATED

DIGEST

CYCLE

WATCHERSDIRTY?

NO

YES

Page 9: Проблемы с производительностью приложений на AngularJS и способы их решения

9

Инструменты

Chrome

Developer Tools

AngularJS

Batarang

Angular

Watchers

Page 10: Проблемы с производительностью приложений на AngularJS и способы их решения

10

• Open Timeline in Developer Tools

Timeline

Page 11: Проблемы с производительностью приложений на AngularJS и способы их решения

11

• Open Timeline in Developer Tools

• Record

Timeline

Page 12: Проблемы с производительностью приложений на AngularJS и способы их решения

12

• Open Timeline in Developer Tools

• Record

• Find your action

Timeline

Page 13: Проблемы с производительностью приложений на AngularJS и способы их решения

13

• Open Timeline in Developer Tools

• Record

• Find your action

• Check timing

Timeline

Page 14: Проблемы с производительностью приложений на AngularJS и способы их решения

14

Пример

Page 15: Проблемы с производительностью приложений на AngularJS и способы их решения

15

Page 16: Проблемы с производительностью приложений на AngularJS и способы их решения

16

Use bind-once

Page 17: Проблемы с производительностью приложений на AngularJS и способы их решения

17

Use bind-once

Page 18: Проблемы с производительностью приложений на AngularJS и способы их решения

18

Multiple Digest cycles

Page 19: Проблемы с производительностью приложений на AngularJS и способы их решения

19

Digest

Page 20: Проблемы с производительностью приложений на AngularJS и способы их решения

20

Digest

Page 21: Проблемы с производительностью приложений на AngularJS и способы их решения

21

ng-animate

Page 22: Проблемы с производительностью приложений на AngularJS и способы их решения

22

Bootstrap. To use or not to use

Bootstrap Dropdown <select> </select>

Page 23: Проблемы с производительностью приложений на AngularJS и способы их решения

23

With native <select>

Page 24: Проблемы с производительностью приложений на AngularJS и способы их решения

24

ng-show VS ng-if

Page 25: Проблемы с производительностью приложений на AngularJS и способы их решения

25

ng-show VS ng-if

Page 26: Проблемы с производительностью приложений на AngularJS и способы их решения

26

Result

Page 27: Проблемы с производительностью приложений на AngularJS и способы их решения

27

VS116.530 42.049

Page 28: Проблемы с производительностью приложений на AngularJS и способы их решения

28

Best practices

• Watchers

• Use bind-once

• Third-party libraries

• Ng-animate

• Ng-show/ng-if

Page 29: Проблемы с производительностью приложений на AngularJS и способы их решения

29

THANK YOU!