ajax layout (Олег Илларионов)

48
Ajax Layout Ajax Layout Илларионов Олег (ВКонтакте) Илларионов Олег (ВКонтакте)

Upload: ontico

Post on 05-Jul-2015

3.188 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Ajax Layout (Олег Илларионов)

Ajax LayoutAjax LayoutИлларионов Олег (ВКонтакте)Илларионов Олег (ВКонтакте)

Page 2: Ajax Layout (Олег Илларионов)

ПереходыПереходы

Page 3: Ajax Layout (Олег Илларионов)

ПереходыПереходы

Page 4: Ajax Layout (Олег Илларионов)

1) Пользователь кликает

2) Индикатор загрузки

3) Получение контента

4) Получение статики

5) Отображение контента

6) Изменение адреса

1) Пользователь кликает

2) Индикатор загрузки

3) Получение контента

4) Получение статики

5) Отображение контента

6) Изменение адреса

Page 5: Ajax Layout (Олег Илларионов)

С чего всё начиналось?С чего всё начиналось?

Page 6: Ajax Layout (Олег Илларионов)

1) Клик

2) Ajax запрос

3) Вставка контента

4) Смена #

5) Отчистка памяти

1) Клик

2) Ajax запрос

3) Вставка контента

4) Смена #

5) Отчистка памяти

Page 7: Ajax Layout (Олег Илларионов)

1) Клик

2) Ajax запрос

3) Вставка контента

4) Смена #

5) Отчистка памяти

- не правдоподобно

1) Клик

2) Ajax запрос

3) Вставка контента

4) Смена #

5) Отчистка памяти

- не правдоподобно

Page 8: Ajax Layout (Олег Илларионов)

1) Клик

2) Контенет 2) Статика

3) Отображение контента

4) vk.com/#blah ?

1) Клик

2) Контенет 2) Статика

3) Отображение контента

4) vk.com/#blah ?

Page 9: Ajax Layout (Олег Илларионов)

1) Клик

2) Контенет 2) Статика

3) Отображение контента

4) History Api

1) Клик

2) Контенет 2) Статика

3) Отображение контента

4) History Api

Page 10: Ajax Layout (Олег Илларионов)

1) Клик

2) Контенет 2) Статика

3) Отображение контента

4)

1) Клик

2) Контенет 2) Статика

3) Отображение контента

4) History Api History Api

Page 11: Ajax Layout (Олег Илларионов)

1) Клик

2) Анимированный favicon

3) Контенет 3) Статика

4) Отображение контента

5) vk.com/blah, # и хаки

- правдоподобно

1) Клик

2) Анимированный favicon

3) Контенет 3) Статика

4) Отображение контента

5) vk.com/blah, # и хаки

- правдоподобно

Page 12: Ajax Layout (Олег Илларионов)

1) Клик

2) Анимированный favicon

3) Контенет 3) Статика

4) Отображение контента

5) vk.com/blah, # и хаки

- но визуально медленно

1) Клик

2) Анимированный favicon

3) Контенет 3) Статика

4) Отображение контента

5) vk.com/blah, # и хаки

- но визуально медленно

Page 13: Ajax Layout (Олег Илларионов)

1) Клик

2) Анимированный favicon

3) Контенет 3) Статика

4) Отображение контента

5) vk.com/blah, # и хаки

- но визуально медленно

1) Клик

2) Анимированный favicon

3) Контенет 3) Статика

4) Отображение контента

5) vk.com/blah, # и хаки

- но визуально медленно

3) Контенет3) Контенет

Page 14: Ajax Layout (Олег Илларионов)

/ oldschool/ oldschool

Page 15: Ajax Layout (Олег Илларионов)

Получение контента

используя iframe с

несколькими коллбеками

для разных частей

страницы

Получение контента

используя iframe с

несколькими коллбеками

для разных частей

страницы

Page 16: Ajax Layout (Олег Илларионов)

1) Клик

2) IFrame 2) Статика

3) Отображение контента

4) vk.com/blah, # и хаки

1) Клик

2) IFrame 2) Статика

3) Отображение контента

4) vk.com/blah, # и хаки

Page 17: Ajax Layout (Олег Илларионов)

Long PollLong Poll

Page 18: Ajax Layout (Олег Илларионов)

С изменением вэба

изменилось и то, как

пользователи

взаимодействуют с ним.

С изменением вэба

изменилось и то, как

пользователи

взаимодействуют с ним.

Page 19: Ajax Layout (Олег Илларионов)

С изменением вэба

изменилось и то, как

пользователи

взаимодействуют с ним.

#realtime

С изменением вэба

изменилось и то, как

пользователи

взаимодействуют с ним.

#realtime

Page 20: Ajax Layout (Олег Илларионов)

1) Постоянный long poll1) Постоянный long poll

Page 21: Ajax Layout (Олег Илларионов)

1) Постоянный long poll

2) Проблемы?

1) Постоянный long poll

2) Проблемы?

Page 22: Ajax Layout (Олег Илларионов)

Постоянный long poll

2 проблемы:

Постоянный long poll

2 проблемы:

Page 23: Ajax Layout (Олег Илларионов)

Постоянный long poll

2 проблемы:

1) Ограничение на

количество коннектов с

одного домена

Постоянный long poll

2 проблемы:

1) Ограничение на

количество коннектов с

одного домена

Page 24: Ajax Layout (Олег Илларионов)

Постоянный long poll

2 проблемы:

1) Ограничение на

количество коннектов -

поддомены

Постоянный long poll

2 проблемы:

1) Ограничение на

количество коннектов -

поддомены

Page 25: Ajax Layout (Олег Илларионов)

Постоянный long poll

2 проблемы:

1) Ограничение на

количество коннектов

2) Нагрузка

Постоянный long poll

2 проблемы:

1) Ограничение на

количество коннектов

2) Нагрузка

Page 26: Ajax Layout (Олег Илларионов)

Постоянный long poll

Нагрузка ++

Постоянный long poll

Нагрузка ++

Page 27: Ajax Layout (Олег Илларионов)

Нагрузка ++

Хочется общаться между

ВКладками

Нагрузка ++

Хочется общаться между

ВКладками

Page 28: Ajax Layout (Олег Илларионов)

Нагрузка ++

Хочется общаться между

ВКладками

Local Connection

Нагрузка ++

Хочется общаться между

ВКладками

Local Connection

Page 29: Ajax Layout (Олег Илларионов)

Нагрузка ++

Хочется общаться между

ВКладками

Local Connection

Flash

Нагрузка ++

Хочется общаться между

ВКладками

Local Connection

Flash

Page 30: Ajax Layout (Олег Илларионов)

Нагрузка ++

Хочется общаться между

Вкладками

Local Storage

html5

Нагрузка ++

Хочется общаться между

Вкладками

Local Storage

html5

Page 31: Ajax Layout (Олег Илларионов)

1) Лонгпол

2) Получение данных

один раз

1) Лонгпол

2) Получение данных

один раз

+

+

+

+

Page 32: Ajax Layout (Олег Илларионов)

1) Лонгпол

2) Получение данных

один раз

Как работает сам long poll

сервер?

1) Лонгпол

2) Получение данных

один раз

Как работает сам long poll

сервер?

+

+

+

+

Page 33: Ajax Layout (Олег Илларионов)

Си,

Очередь,

epoll,

Данные в оперативной

памяти

Си,

Очередь,

epoll,

Данные в оперативной

памяти

Page 34: Ajax Layout (Олег Илларионов)

Тонкий сервер,Тонкий сервер,

Page 35: Ajax Layout (Олег Илларионов)

Тонкий сервер,

Нет шаблонизации

Тонкий сервер,

Нет шаблонизации

Page 36: Ajax Layout (Олег Илларионов)

Тонкий сервер,

Нет шаблонизации,

Нет бизнеслогики

Тонкий сервер,

Нет шаблонизации,

Нет бизнеслогики

Page 37: Ajax Layout (Олег Илларионов)

Тонкий сервер,

Логика, шаблонизация,

Лангпак - во время

генерации события.

Тонкий сервер,

Логика, шаблонизация,

Лангпак - во время

генерации события.

Page 38: Ajax Layout (Олег Илларионов)

СкоростьСкорость

Page 39: Ajax Layout (Олег Илларионов)
Page 40: Ajax Layout (Олег Илларионов)

1) Параллельное

подключение статики и

контента

1) Параллельное

подключение статики и

контента

Page 41: Ajax Layout (Олег Илларионов)

1) Параллельное

подключение статики и

контента

2) Синхронизация

вкладок, кеширование

динамических данных

1) Параллельное

подключение статики и

контента

2) Синхронизация

вкладок, кеширование

динамических данных

Page 42: Ajax Layout (Олег Илларионов)

1) Параллельное

подключение статики и

контента

2) Синхронизация

вкладок, кеширование

динамических данных

3) Кеширование страниц

1) Параллельное

подключение статики и

контента

2) Синхронизация

вкладок, кеширование

динамических данных

3) Кеширование страниц

Page 43: Ajax Layout (Олег Илларионов)

3) Кеширование страниц

Кнопка “Назад”

3) Кеширование страниц

Кнопка “Назад”

Page 44: Ajax Layout (Олег Илларионов)

3) Кеширование страниц

Кнопка “Назад”

- Изымаем дерево из DOM

- Копируем переменные

окружения, cur.*

3) Кеширование страниц

Кнопка “Назад”

- Изымаем дерево из DOM

- Копируем переменные

окружения, cur.*

Page 45: Ajax Layout (Олег Илларионов)

Silent load

Для быстрого поиска по

контенту — необходимо

искать на клиентской

стороне.

Silent load

Для быстрого поиска по

контенту — необходимо

искать на клиентской

стороне.

Page 46: Ajax Layout (Олег Илларионов)

Silent load

Необходимо выгружать

Большой объём JSON

данных.

Долго.

Silent load

Необходимо выгружать

Большой объём JSON

данных.

Долго.

Page 47: Ajax Layout (Олег Илларионов)

2 Запроса:

1) Отображение страницы

2) JSON данные

(Общие данные

кешируются в MC)

2 Запроса:

1) Отображение страницы

2) JSON данные

(Общие данные

кешируются в MC)

Page 48: Ajax Layout (Олег Илларионов)

2 Запроса:

1) Отображение страницы

2) JSON данные

10k друзей не влезают в

оперативную память.

Получаем 5k, чистим, ...

2 Запроса:

1) Отображение страницы

2) JSON данные

10k друзей не влезают в

оперативную память.

Получаем 5k, чистим, ...