SlideShare une entreprise Scribd logo
1  sur  358
Télécharger pour lire hors ligne
Браузеры


Георгий Мостоловица
Разработчик интерфейсов
Браузеры
Браузеры

Общая схема работы браузера
Браузеры

Общая схема работы браузера
Краткая история
Браузеры

Общая схема работы браузера
Краткая история
Браузерные войны
Браузеры

Общая схема работы браузера
Краткая история
Браузерные войны
Режимы отображения
Браузеры

Общая схема работы браузера
Краткая история
Браузерные войны
Режимы отображения
UserAgent
Браузеры

Общая схема работы браузера
Краткая история
Браузерные войны
Режимы отображения
UserAgent
Кроссбраузерность
Бра́узер — программное обеспечение для просмотра
    веб-сайтов, т.е. для запроса веб-страниц, их обработки,
    вывода и перехода от одной страницы к другой.

    Wikipedia




4
Схема работы браузера




5
Архитектура браузеров

                        Пользовательский интерфейс
     Хранилище данных



                         Высокоуровневый движок

                            Движок рендеринга


                         Сеть       JS   UI Backend


6
Краткая история
Краткая история браузеров. 1991 год




8
Краткая история браузеров. 1991 год
    WorldWideWeb




8
Краткая история браузеров. 1991 год
    WorldWideWeb
    • Начало эпохи браузеров




8
Краткая история браузеров. 1991 год
    WorldWideWeb
    • Начало эпохи браузеров
    • Разработал Тим Бернерс-Ли




8
Краткая история браузеров. 1991 год
    WorldWideWeb
    • Начало эпохи браузеров
    • Разработал Тим Бернерс-Ли
      – он очень крутой




8
Краткая история браузеров. 1991 год
    WorldWideWeb
    • Начало эпохи браузеров
    • Разработал Тим Бернерс-Ли
      – он очень крутой
      – изобретатель всемирной паутины и как следствие: URI,
        URL, HTTP, HTML, семантического веба




8
Краткая история браузеров. 1991 год
    WorldWideWeb
    • Начало эпохи браузеров
    • Разработал Тим Бернерс-Ли
      – он очень крутой
      – изобретатель всемирной паутины и как следствие: URI,
        URL, HTTP, HTML, семантического веба
    • Переименован в Nexus, чтобы избежать путаницы




8
Краткая история браузеров. 1991 год
    WorldWideWeb
    • Начало эпохи браузеров
    • Разработал Тим Бернерс-Ли
      – он очень крутой
      – изобретатель всемирной паутины и как следствие: URI,
         URL, HTTP, HTML, семантического веба
    • Переименован в Nexus, чтобы избежать путаницы
    • Графический браузер




8
Краткая история браузеров. 1991 год
    WorldWideWeb
    • Начало эпохи браузеров
    • Разработал Тим Бернерс-Ли
      – он очень крутой
      – изобретатель всемирной паутины и как следствие: URI,
         URL, HTTP, HTML, семантического веба
    • Переименован в Nexus, чтобы избежать путаницы
    • Графический браузер
      – но картинки только в отдельном окне



8
Краткая история браузеров. 1991 год
    WorldWideWeb
    • Начало эпохи браузеров
    • Разработал Тим Бернерс-Ли
      – он очень крутой
      – изобретатель всемирной паутины и как следствие: URI,
         URL, HTTP, HTML, семантического веба
    • Переименован в Nexus, чтобы избежать путаницы
    • Графический браузер
      – но картинки только в отдельном окне
      – WYSIWYG


8
Краткая история браузеров. 1991 год
    WorldWideWeb
    • Начало эпохи браузеров
    • Разработал Тим Бернерс-Ли
      – он очень крутой
      – изобретатель всемирной паутины и как следствие: URI,
         URL, HTTP, HTML, семантического веба
    • Переименован в Nexus, чтобы избежать путаницы
    • Графический браузер
      – но картинки только в отдельном окне
      – WYSIWYG
      – NeXT, Objective C

8
Краткая история браузеров. 1993 год




9
Краткая история браузеров. 1993 год



    Mosaic




9
Краткая история браузеров. 1993 год



    Mosaic
    • Разработан в NCSA




9
Краткая история браузеров. 1993 год



    Mosaic
    • Разработан в NCSA
    • Популяризовал веб




9
Краткая история браузеров. 1993 год



    Mosaic
    • Разработан в NCSA
    • Популяризовал веб
      – удобный установщик




9
Краткая история браузеров. 1993 год



    Mosaic
    • Разработан в NCSA
    • Популяризовал веб
      – удобный установщик
      – понятный интерфейс




9
Краткая история браузеров. 1993 год



    Mosaic
    • Разработан в NCSA
    • Популяризовал веб
      – удобный установщик
      – понятный интерфейс
      – Windows, Unix и Mac версия



9
Краткая история браузеров. 1993 год



    Mosaic
    • Разработан в NCSA
    • Популяризовал веб
      – удобный установщик
      – понятный интерфейс
      – Windows, Unix и Mac версия
      – и конечно же инлайновые картинки


9
Краткая история браузеров. 1994 год




10
Краткая история браузеров. 1994 год



     Netscape Navigator 1.x




10
Краткая история браузеров. 1994 год



     Netscape Navigator 1.x
     • Обладает самыми широкими возможностями




10
Краткая история браузеров. 1994 год



     Netscape Navigator 1.x
     • Обладает самыми широкими возможностями
     • Стремительно набирает популярность




10
Краткая история браузеров. 1994 год



     Netscape Navigator 1.x
     • Обладает самыми широкими возможностями
     • Стремительно набирает популярность
     • Сodename Mozilla (Mosaic Killer)




10
Краткая история браузеров. 1994 год



     Netscape Navigator 1.x
     • Обладает самыми широкими возможностями
     • Стремительно набирает популярность
     • Сodename Mozilla (Mosaic Killer)
       – вообще сложная история с названием Mozilla




10
Краткая история браузеров. 1994 год



     Netscape Navigator 1.x
     • Обладает самыми широкими возможностями
     • Стремительно набирает популярность
     • Сodename Mozilla (Mosaic Killer)
       – вообще сложная история с названием Mozilla
       – ещё и имя маскота



10
Краткая история браузеров. 1994 год



     Netscape Navigator 1.x
     • Обладает самыми широкими возможностями
     • Стремительно набирает популярность
     • Сodename Mozilla (Mosaic Killer)
       – вообще сложная история с названием Mozilla
       – ещё и имя маскота



10
Краткая история браузеров. 1996 год




11
Краткая история браузеров. 1996 год



     Netscape Navigator 2.x-3.x




11
Краткая история браузеров. 1996 год



     Netscape Navigator 2.x-3.x
     • Добавлена поддержка




11
Краткая история браузеров. 1996 год



     Netscape Navigator 2.x-3.x
     • Добавлена поддержка
       – LiveAudio, LiveVideo, QuickTime, POP3, HTML 3.2




11
Краткая история браузеров. 1996 год



     Netscape Navigator 2.x-3.x
     • Добавлена поддержка
       – LiveAudio, LiveVideo, QuickTime, POP3, HTML 3.2
       – Java, JavaScript, плагины и само собой
         анимированые гифки




11
Краткая история браузеров. 1996 год



     Netscape Navigator 2.x-3.x
     • Добавлена поддержка
       – LiveAudio, LiveVideo, QuickTime, POP3, HTML 3.2
       – Java, JavaScript, плагины и само собой
         анимированые гифки
       – email клиент и многое другое




11
Краткая история браузеров. 1996 год



     Netscape Navigator 2.x-3.x
     • Добавлена поддержка
       – LiveAudio, LiveVideo, QuickTime, POP3, HTML 3.2
       – Java, JavaScript, плагины и само собой
         анимированые гифки
       – email клиент и многое другое
     • Около 90% рынка



11
Краткая история браузеров. 1996 год




12
Краткая история браузеров. 1996 год




     Opera 2




12
Краткая история браузеров. 1996 год




     Opera 2
     • публичная версия




12
Краткая история браузеров. 1996 год




     Opera 2
     • публичная версия
     • поддержка фреймов




12
Краткая история браузеров. 1996 год




13
Краткая история браузеров. 1996 год


     Internet Explorer 1-2




13
Краткая история браузеров. 1996 год


     Internet Explorer 1-2
     • Разработан на основе Mosaic




13
Краткая история браузеров. 1996 год


     Internet Explorer 1-2
     • Разработан на основе Mosaic
     • Поддерживает CSS




13
Краткая история браузеров. 1996 год


     Internet Explorer 1-2
     • Разработан на основе Mosaic
     • Поддерживает CSS
       – правда очень частично




13
Краткая история браузеров. 1996 год


     Internet Explorer 1-2
     • Разработан на основе Mosaic
     • Поддерживает CSS
       – правда очень частично
       – но зато, впервые на рынке




13
Краткая история браузеров. 1996 год


     Internet Explorer 1-2
     • Разработан на основе Mosaic
     • Поддерживает CSS
       – правда очень частично
       – но зато, впервые на рынке
     • Плагины ActiveX, Java




13
Краткая история браузеров. 1996 год


     Internet Explorer 1-2
     • Разработан на основе Mosaic
     • Поддерживает CSS
       – правда очень частично
       – но зато, впервые на рынке
     • Плагины ActiveX, Java
     • Поставляется с Windows 95 OSR2




13
Краткая история браузеров. 1996 год


     Internet Explorer 1-2
     • Разработан на основе Mosaic
     • Поддерживает CSS
       – правда очень частично
       – но зато, впервые на рынке
     • Плагины ActiveX, Java
     • Поставляется с Windows 95 OSR2
     • Первая версия включавшая синюю букву E



13
Краткая история браузеров. 1997 год




14
Краткая история браузеров. 1997 год

     Netscape Navigator 4.x




14
Краткая история браузеров. 1997 год

     Netscape Navigator 4.x
     • CSS1 частично




14
Краткая история браузеров. 1997 год

     Netscape Navigator 4.x
     • CSS1 частично
     • Очень старый движок по сравнению с IE4




14
Краткая история браузеров. 1997 год

     Netscape Navigator 4.x
     • CSS1 частично
     • Очень старый движок по сравнению с IE4
     • Начало падения рыночной доли




14
Краткая история браузеров. 1997 год

     Netscape Navigator 4.x
     • CSS1 частично
     • Очень старый движок по сравнению с IE4
     • Начало падения рыночной доли

     Opera 3




14
Краткая история браузеров. 1997 год

     Netscape Navigator 4.x
     • CSS1 частично
     • Очень старый движок по сравнению с IE4
     • Начало падения рыночной доли

     Opera 3
     • кроссплатформенная




14
Краткая история браузеров. 1997 год

     Netscape Navigator 4.x
     • CSS1 частично
     • Очень старый движок по сравнению с IE4
     • Начало падения рыночной доли

     Opera 3
     • кроссплатформенная
     • JavaScript




14
Краткая история браузеров. 1997 год




15
Краткая история браузеров. 1997 год



     Internet Explorer 4




15
Краткая история браузеров. 1997 год



     Internet Explorer 4
     • Код полностью переписан




15
Краткая история браузеров. 1997 год



     Internet Explorer 4
     • Код полностью переписан
     • Cобственные расширения JavaScript, не совместимые с
       Netscape




15
Краткая история браузеров. 1997 год



     Internet Explorer 4
     • Код полностью переписан
     • Cобственные расширения JavaScript, не совместимые с
       Netscape
     • Собственная объектная модель документа (DOM)




15
Краткая история браузеров. 1997 год



     Internet Explorer 4
     • Код полностью переписан
     • Cобственные расширения JavaScript, не совместимые с
       Netscape
     • Собственная объектная модель документа (DOM)
     • Проще и стабильнее чем в Netscape




15
Краткая история браузеров. 1997 год



     Internet Explorer 4
     • Код полностью переписан
     • Cобственные расширения JavaScript, не совместимые с
       Netscape
     • Собственная объектная модель документа (DOM)
     • Проще и стабильнее чем в Netscape
     • Поставляется с Windows 98



15
Краткая история браузеров. 1998 год




16
Краткая история браузеров. 1998 год



     Netscape. Последние дни.




16
Краткая история браузеров. 1998 год



     Netscape. Последние дни.
      – Очень старый движок




16
Краткая история браузеров. 1998 год



     Netscape. Последние дни.
      – Очень старый движок
      – Множество ошибок обработки HTML и CSS




16
Краткая история браузеров. 1998 год



     Netscape. Последние дни.
       – Очень старый движок
       – Множество ошибок обработки HTML и CSS
     • AOL покупает Netscape




16
Краткая история браузеров. 1998 год



     Netscape. Последние дни.
       – Очень старый движок
       – Множество ошибок обработки HTML и CSS
     • AOL покупает Netscape
     • Netscape наносит Microsoft последний удар в спину и
       опенсорсит код браузера в рамках проекта Mozilla




16
Краткая история браузеров. 1998 год



     Netscape. Последние дни.
       – Очень старый движок
       – Множество ошибок обработки HTML и CSS
     • AOL покупает Netscape
     • Netscape наносит Microsoft последний удар в спину и
       опенсорсит код браузера в рамках проекта Mozilla
     • Internet Explorer — новый лидер рынка



16
Краткая история браузеров. 1998 год




17
Краткая история браузеров. 1998 год




     Opera 3.5




17
Краткая история браузеров. 1998 год




     Opera 3.5
     • Начинает поддерживать CSS




17
Краткая история браузеров. 1998 год




     Opera 3.5
     • Начинает поддерживать CSS
     • Техническим директором компании становится один из
       создателей CSS — Хокон Виум Ли




17
Краткая история браузеров. 1999 год




18
Краткая история браузеров. 1999 год


     Internet Explorer 5.0-5.5




18
Краткая история браузеров. 1999 год


     Internet Explorer 5.0-5.5
     • Улучшенная поддержка HTML и CSS




18
Краткая история браузеров. 1999 год


     Internet Explorer 5.0-5.5
     • Улучшенная поддержка HTML и CSS
     • Поддержка XML и XSL




18
Краткая история браузеров. 1999 год


     Internet Explorer 5.0-5.5
     • Улучшенная поддержка HTML и CSS
     • Поддержка XML и XSL
     • XMLHttpRequest




18
Краткая история браузеров. 1999 год


     Internet Explorer 5.0-5.5
     • Улучшенная поддержка HTML и CSS
     • Поддержка XML и XSL
     • XMLHttpRequest
       – можно считать днём рождения AJAX




18
Краткая история браузеров. 1999 год


     Internet Explorer 5.0-5.5
     • Улучшенная поддержка HTML и CSS
     • Поддержка XML и XSL
     • XMLHttpRequest
       – можно считать днём рождения AJAX
       – хотя сам термин появится гораздо позже




18
Краткая история браузеров. 1999 год


     Internet Explorer 5.0-5.5
     • Улучшенная поддержка HTML и CSS
     • Поддержка XML и XSL
     • XMLHttpRequest
       – можно считать днём рождения AJAX
       – хотя сам термин появится гораздо позже
     • Последняя шестнадцатибитная версия




18
Краткая история браузеров. 1999 год


     Internet Explorer 5.0-5.5
     • Улучшенная поддержка HTML и CSS
     • Поддержка XML и XSL
     • XMLHttpRequest
       – можно считать днём рождения AJAX
       – хотя сам термин появится гораздо позже
     • Последняя шестнадцатибитная версия
     • Поставляется с Windows 98 SE, Windows ME,
       Windows 2000 и Microsoft Office


18
Краткая история браузеров. 2000 год




19
Краткая история браузеров. 2000 год



     Konqueror 2




19
Краткая история браузеров. 2000 год



     Konqueror 2
     • Игра на именах:




19
Краткая история браузеров. 2000 год



     Konqueror 2
     • Игра на именах:
       – Navigator — мореплаватель, штурман




19
Краткая история браузеров. 2000 год



     Konqueror 2
     • Игра на именах:
       – Navigator — мореплаватель, штурман
       – Explorer — путешественник, исследователь




19
Краткая история браузеров. 2000 год



     Konqueror 2
     • Игра на именах:
       – Navigator — мореплаватель, штурман
       – Explorer — путешественник, исследователь
       – Conqueror — завоеватель, победитель




19
Краткая история браузеров. 2000 год



     Konqueror 2
     • Игра на именах:
       – Navigator — мореплаватель, штурман
       – Explorer — путешественник, исследователь
       – Conqueror — завоеватель, победитель
     • «K» это от KDE




19
Краткая история браузеров. 2000 год



     Konqueror 2
     • Игра на именах:
       – Navigator — мореплаватель, штурман
       – Explorer — путешественник, исследователь
       – Conqueror — завоеватель, победитель
     • «K» это от KDE
     • Основан на KHTML и KJS



19
Краткая история браузеров. 2001 год




20
Краткая история браузеров. 2001 год


     Opera 6




20
Краткая история браузеров. 2001 год


     Opera 6
     • Microsoft заблокировала доступ к MSN.com




20
Краткая история браузеров. 2001 год


     Opera 6
     • Microsoft заблокировала доступ к MSN.com
       – спасает опция «представляться как Internet Explorer»




20
Краткая история браузеров. 2001 год


     Opera 6
     • Microsoft заблокировала доступ к MSN.com
       – спасает опция «представляться как Internet Explorer»
       – в конце года полная маскировка под ИЕ




20
Краткая история браузеров. 2001 год


     Opera 6
     • Microsoft заблокировала доступ к MSN.com
       – спасает опция «представляться как Internet Explorer»
       – в конце года полная маскировка под ИЕ

     Internet Explorer 6




20
Краткая история браузеров. 2001 год


     Opera 6
     • Microsoft заблокировала доступ к MSN.com
       – спасает опция «представляться как Internet Explorer»
       – в конце года полная маскировка под ИЕ

     Internet Explorer 6
     • Улучшена поддержка CSS1 и DOM уровня 1




20
Краткая история браузеров. 2001 год


     Opera 6
     • Microsoft заблокировала доступ к MSN.com
       – спасает опция «представляться как Internet Explorer»
       – в конце года полная маскировка под ИЕ

     Internet Explorer 6
     • Улучшена поддержка CSS1 и DOM уровня 1
     • Всё ещё не соответствует стандартам W3C



20
Краткая история браузеров. 2001 год


     Opera 6
     • Microsoft заблокировала доступ к MSN.com
       – спасает опция «представляться как Internet Explorer»
       – в конце года полная маскировка под ИЕ

     Internet Explorer 6
     • Улучшена поддержка CSS1 и DOM уровня 1
     • Всё ещё не соответствует стандартам W3C
     • Что, в купе с монополией, мешает их внедрению


20
Краткая история браузеров. 2002 год




21
Краткая история браузеров. 2002 год


     Phoenix 0.1-0.5




21
Краткая история браузеров. 2002 год


     Phoenix 0.1-0.5
     • Основан на движке Gecko




21
Краткая история браузеров. 2002 год


     Phoenix 0.1-0.5
     • Основан на движке Gecko
       – который начинали разрабатывать ещё в Netscape




21
Краткая история браузеров. 2002 год


     Phoenix 0.1-0.5
     • Основан на движке Gecko
       – который начинали разрабатывать ещё в Netscape
       – теперь разрабатывается Mozilla Foundation




21
Краткая история браузеров. 2002 год


     Phoenix 0.1-0.5
     • Основан на движке Gecko
       – который начинали разрабатывать ещё в Netscape
       – теперь разрабатывается Mozilla Foundation
       – основной принцип — поддержка открытых стандартов




21
Краткая история браузеров. 2002 год


     Phoenix 0.1-0.5
     • Основан на движке Gecko
       – который начинали разрабатывать ещё в Netscape
       – теперь разрабатывается Mozilla Foundation
       – основной принцип — поддержка открытых стандартов
     • Много всего хорошего




21
Краткая история браузеров. 2002 год


     Phoenix 0.1-0.5
     • Основан на движке Gecko
       – который начинали разрабатывать ещё в Netscape
       – теперь разрабатывается Mozilla Foundation
       – основной принцип — поддержка открытых стандартов
     • Много всего хорошего
       – блокировка всплывающих окон



21
Краткая история браузеров. 2002 год


     Phoenix 0.1-0.5
     • Основан на движке Gecko
       – который начинали разрабатывать ещё в Netscape
       – теперь разрабатывается Mozilla Foundation
       – основной принцип — поддержка открытых стандартов
     • Много всего хорошего
       – блокировка всплывающих окон
       – табики


21
Краткая история браузеров. 2002 год


     Phoenix 0.1-0.5
     • Основан на движке Gecko
       – который начинали разрабатывать ещё в Netscape
       – теперь разрабатывается Mozilla Foundation
       – основной принцип — поддержка открытых стандартов
     • Много всего хорошего
       – блокировка всплывающих окон
       – табики
       – темы

21
Краткая история браузеров. 2003 год




22
Краткая история браузеров. 2003 год

     Firebird 1.5




22
Краткая история браузеров. 2003 год

     Firebird 1.5
     • Переименованный Phoenix




22
Краткая история браузеров. 2003 год

     Firebird 1.5
     • Переименованный Phoenix
       – проблемы с торговой маркой




22
Краткая история браузеров. 2003 год

     Firebird 1.5
     • Переименованный Phoenix
       – проблемы с торговой маркой
     • Какие-то улучшения




22
Краткая история браузеров. 2003 год

     Firebird 1.5
     • Переименованный Phoenix
       – проблемы с торговой маркой
     • Какие-то улучшения

     Opera 7.0-7.2




22
Краткая история браузеров. 2003 год

     Firebird 1.5
     • Переименованный Phoenix
       – проблемы с торговой маркой
     • Какие-то улучшения

     Opera 7.0-7.2
     • Новый движок — Presto. Полностью переписанный




22
Краткая история браузеров. 2003 год

     Firebird 1.5
     • Переименованный Phoenix
       – проблемы с торговой маркой
     • Какие-то улучшения

     Opera 7.0-7.2
     • Новый движок — Presto. Полностью переписанный
     • Выросла скорость и стабильность работы




22
Краткая история браузеров. 2003 год

     Firebird 1.5
     • Переименованный Phoenix
       – проблемы с торговой маркой
     • Какие-то улучшения

     Opera 7.0-7.2
     • Новый движок — Presto. Полностью переписанный
     • Выросла скорость и стабильность работы
     • Очередной конфликт с MSN



22
Краткая история браузеров. 2003 год

     Firebird 1.5
     • Переименованный Phoenix
       – проблемы с торговой маркой
     • Какие-то улучшения

     Opera 7.0-7.2
     • Новый движок — Presto. Полностью переписанный
     • Выросла скорость и стабильность работы
     • Очередной конфликт с MSN
       – люди думали, что виновата Опера

22
Краткая история браузеров. 2003 год

     Firebird 1.5
     • Переименованный Phoenix
       – проблемы с торговой маркой
     • Какие-то улучшения

     Opera 7.0-7.2
     • Новый движок — Presto. Полностью переписанный
     • Выросла скорость и стабильность работы
     • Очередной конфликт с MSN
       – люди думали, что виновата Опера
       – Microsoft не признался
22
Краткая история браузеров. 2003 год




23
Краткая история браузеров. 2003 год



     Safari 1.0




23
Краткая история браузеров. 2003 год



     Safari 1.0
     • Онован на Webkit — форке KHTML




23
Краткая история браузеров. 2003 год



     Safari 1.0
     • Онован на Webkit — форке KHTML
       – небольшой код (140 000 строк кода)




23
Краткая история браузеров. 2003 год



     Safari 1.0
     • Онован на Webkit — форке KHTML
       – небольшой код (140 000 строк кода)
       – хорошо спроектированный




23
Краткая история браузеров. 2003 год



     Safari 1.0
     • Онован на Webkit — форке KHTML
       – небольшой код (140 000 строк кода)
       – хорошо спроектированный
       – поддержка стандартов




23
Краткая история браузеров. 2003 год



     Safari 1.0
     • Онован на Webkit — форке KHTML
       – небольшой код (140 000 строк кода)
       – хорошо спроектированный
       – поддержка стандартов
     • Состоит из WebCore и JavaScriptCore




23
Краткая история браузеров. 2003 год



     Safari 1.0
     • Онован на Webkit — форке KHTML
       – небольшой код (140 000 строк кода)
       – хорошо спроектированный
       – поддержка стандартов
     • Состоит из WebCore и JavaScriptCore
     • Браузер по умолчанию на Маках



23
Краткая история браузеров. 2004 год




24
Краткая история браузеров. 2004 год



     Internet Explorer 6 SP2




24
Краткая история браузеров. 2004 год



     Internet Explorer 6 SP2
     • Никаких изменений в движке




24
Краткая история браузеров. 2004 год



     Internet Explorer 6 SP2
     • Никаких изменений в движке

     Opera 7.x




24
Краткая история браузеров. 2004 год



     Internet Explorer 6 SP2
     • Никаких изменений в движке

     Opera 7.x
     • Проблемы с Hotmail




24
Краткая история браузеров. 2004 год



     Internet Explorer 6 SP2
     • Никаких изменений в движке

     Opera 7.x
     • Проблемы с Hotmail
     • Направлена жалоба в Майкрософт




24
Краткая история браузеров. 2004 год



     Internet Explorer 6 SP2
     • Никаких изменений в движке

     Opera 7.x
     • Проблемы с Hotmail
     • Направлена жалоба в Майкрософт
     • Но они не ответили



24
Краткая история браузеров. 2004 год




25
Краткая история браузеров. 2004 год



     Firefox 0.8-1.0




25
Краткая история браузеров. 2004 год



     Firefox 0.8-1.0
     • Опять переименован из-за аналогичной причины




25
Краткая история браузеров. 2004 год



     Firefox 0.8-1.0
     • Опять переименован из-за аналогичной причины
     • Получил множество положительных оценок




25
Краткая история браузеров. 2004 год



     Firefox 0.8-1.0
     • Опять переименован из-за аналогичной причины
     • Получил множество положительных оценок
     • 25 млн. загрузок за первые 99 дней




25
Краткая история браузеров. 2004 год



     Firefox 0.8-1.0
     • Опять переименован из-за аналогичной причины
     • Получил множество положительных оценок
     • 25 млн. загрузок за первые 99 дней
     • Становится одним из самых популярных свободных
       приложений




25
Краткая история браузеров. 2005 год




26
Краткая история браузеров. 2005 год

     Opera 8.x




26
Краткая история браузеров. 2005 год

     Opera 8.x
     • Браузер становится полностью бесплатным и без рекламы




26
Краткая история браузеров. 2005 год

     Opera 8.x
     • Браузер становится полностью бесплатным и без рекламы

     Firefox 1.5




26
Краткая история браузеров. 2005 год

     Opera 8.x
     • Браузер становится полностью бесплатным и без рекламы

     Firefox 1.5
     • Через 344 дня после выпуска первой версии — загружен в
       100 миллионный раз




26
Краткая история браузеров. 2005 год

     Opera 8.x
     • Браузер становится полностью бесплатным и без рекламы

     Firefox 1.5
     • Через 344 дня после выпуска первой версии — загружен в
       100 миллионный раз
     • Рыночная доля около 10%




26
Краткая история браузеров. 2005 год

     Opera 8.x
     • Браузер становится полностью бесплатным и без рекламы

     Firefox 1.5
     • Через 344 дня после выпуска первой версии — загружен в
       100 миллионный раз
     • Рыночная доля около 10%

     Safari 2.0



26
Краткая история браузеров. 2005 год

     Opera 8.x
     • Браузер становится полностью бесплатным и без рекламы

     Firefox 1.5
     • Через 344 дня после выпуска первой версии — загружен в
       100 миллионный раз
     • Рыночная доля около 10%

     Safari 2.0
     • Проходит Acid2 тест


26
Краткая история браузеров. 2005 год

     Opera 8.x
     • Браузер становится полностью бесплатным и без рекламы

     Firefox 1.5
     • Через 344 дня после выпуска первой версии — загружен в
       100 миллионный раз
     • Рыночная доля около 10%

     Safari 2.0
     • Проходит Acid2 тест
     • Webkit в OpenSource

26
Краткая история браузеров. 2006 год




27
Краткая история браузеров. 2006 год




     Internet Explorer 7




27
Краткая история браузеров. 2006 год




     Internet Explorer 7
     • PNG с альфа-каналом




27
Краткая история браузеров. 2006 год




     Internet Explorer 7
     • PNG с альфа-каналом
     • Какие то улучшения поддержки стандартов




27
Краткая история браузеров. 2006 год




     Internet Explorer 7
     • PNG с альфа-каналом
     • Какие то улучшения поддержки стандартов
     • Первая версия, в которой не содержался код Mosaic




27
Краткая история браузеров. 2006 год




     Internet Explorer 7
     • PNG с альфа-каналом
     • Какие то улучшения поддержки стандартов
     • Первая версия, в которой не содержался код Mosaic
     • Trident 3.1 (раньше без версий)




27
Краткая история браузеров. 2007 год




28
Краткая история браузеров. 2007 год




     Мобильная версия Safari




28
Краткая история браузеров. 2007 год




     Мобильная версия Safari
     • Стив Джобс представляет iPhone




28
Краткая история браузеров. 2007 год




     Мобильная версия Safari
     • Стив Джобс представляет iPhone
     • А вместе с ним и мобильную версию




28
Краткая история браузеров. 2007 год




     Мобильная версия Safari
     • Стив Джобс представляет iPhone
     • А вместе с ним и мобильную версию
     • Основан на обычном Webkit




28
Краткая история браузеров. 2007 год




     Мобильная версия Safari
     • Стив Джобс представляет iPhone
     • А вместе с ним и мобильную версию
     • Основан на обычном Webkit
     • С изменениями для мобильных устройств




28
Краткая история браузеров. 2008 год




29
Краткая история браузеров. 2008 год


     Opera 9.x




29
Краткая история браузеров. 2008 год


     Opera 9.x
     • Повышение производительности




29
Краткая история браузеров. 2008 год


     Opera 9.x
     • Повышение производительности
       – вдвое быстрее предыдущей версии




29
Краткая история браузеров. 2008 год


     Opera 9.x
     • Повышение производительности
       – вдвое быстрее предыдущей версии
       – на 50% быстрее Firefox 2




29
Краткая история браузеров. 2008 год


     Opera 9.x
     • Повышение производительности
       – вдвое быстрее предыдущей версии
       – на 50% быстрее Firefox 2
       – вдвое быстрее Internet Explorer 7




29
Краткая история браузеров. 2008 год


     Opera 9.x
     • Повышение производительности
       – вдвое быстрее предыдущей версии
       – на 50% быстрее Firefox 2
       – вдвое быстрее Internet Explorer 7

     Firefox 3.0




29
Краткая история браузеров. 2008 год


     Opera 9.x
     • Повышение производительности
       – вдвое быстрее предыдущей версии
       – на 50% быстрее Firefox 2
       – вдвое быстрее Internet Explorer 7

     Firefox 3.0
     • 8 миллионов загрузок в день релиза



29
Краткая история браузеров. 2008 год


     Opera 9.x
     • Повышение производительности
       – вдвое быстрее предыдущей версии
       – на 50% быстрее Firefox 2
       – вдвое быстрее Internet Explorer 7

     Firefox 3.0
     • 8 миллионов загрузок в день релиза
     • Глобальная доля рынка — 20%, в Европе — 30%


29
Краткая история браузеров. 2008 год




30
Краткая история браузеров. 2008 год


     Chrome 1.0




30
Краткая история браузеров. 2008 год


     Chrome 1.0
     • Простой интерфейс




30
Краткая история браузеров. 2008 год


     Chrome 1.0
     • Простой интерфейс
     • Высокая скорость работы




30
Краткая история браузеров. 2008 год


     Chrome 1.0
     • Простой интерфейс
     • Высокая скорость работы
     • Основан на Webkit




30
Краткая история браузеров. 2008 год


     Chrome 1.0
     • Простой интерфейс
     • Высокая скорость работы
     • Основан на Webkit
     • V8, вместо JavaScriptCore




30
Краткая история браузеров. 2008 год


     Chrome 1.0
     • Простой интерфейс
     • Высокая скорость работы
     • Основан на Webkit
     • V8, вместо JavaScriptCore
     • Наверное, можно считать, что положил начало




30
Краткая история браузеров. 2008 год


     Chrome 1.0
     • Простой интерфейс
     • Высокая скорость работы
     • Основан на Webkit
     • V8, вместо JavaScriptCore
     • Наверное, можно считать, что положил начало
       – гонке за скорость



30
Краткая история браузеров. 2008 год


     Chrome 1.0
     • Простой интерфейс
     • Высокая скорость работы
     • Основан на Webkit
     • V8, вместо JavaScriptCore
     • Наверное, можно считать, что положил начало
       – гонке за скорость
       – в том числе и для Яваскриптовых движков


30
Краткая история браузеров. 2009 год




31
Краткая история браузеров. 2009 год
     Internet Explorer 8.0




31
Краткая история браузеров. 2009 год
     Internet Explorer 8.0
     • Новый режим рендеринга, который называется
       «режим стандартов»




31
Краткая история браузеров. 2009 год
     Internet Explorer 8.0
     • Новый режим рендеринга, который называется
       «режим стандартов»
     • Проходит Acid2




31
Краткая история браузеров. 2009 год
     Internet Explorer 8.0
     • Новый режим рендеринга, который называется
       «режим стандартов»
     • Проходит Acid2

     Chrome 2.0-3.0




31
Краткая история браузеров. 2009 год
     Internet Explorer 8.0
     • Новый режим рендеринга, который называется
       «режим стандартов»
     • Проходит Acid2

     Chrome 2.0-3.0
     • Существенно увеличена производительность JavaScript




31
Краткая история браузеров. 2009 год
     Internet Explorer 8.0
     • Новый режим рендеринга, который называется
       «режим стандартов»
     • Проходит Acid2

     Chrome 2.0-3.0
     • Существенно увеличена производительность JavaScript

     Firefox 3.5




31
Краткая история браузеров. 2009 год
     Internet Explorer 8.0
     • Новый режим рендеринга, который называется
       «режим стандартов»
     • Проходит Acid2

     Chrome 2.0-3.0
     • Существенно увеличена производительность JavaScript

     Firefox 3.5
     • Новая версия SpiderMonkey — TraceMonkey



31
Краткая история браузеров. 2009 год
     Internet Explorer 8.0
     • Новый режим рендеринга, который называется
       «режим стандартов»
     • Проходит Acid2

     Chrome 2.0-3.0
     • Существенно увеличена производительность JavaScript

     Firefox 3.5
     • Новая версия SpiderMonkey — TraceMonkey
     • Существенно увеличена производительность JavaScript

31
Краткая история браузеров. 2009 год
     Internet Explorer 8.0
     • Новый режим рендеринга, который называется
       «режим стандартов»
     • Проходит Acid2

     Chrome 2.0-3.0
     • Существенно увеличена производительность JavaScript

     Firefox 3.5
     • Новая версия SpiderMonkey — TraceMonkey
     • Существенно увеличена производительность JavaScript
     • Первый JIT компилятор для JavaScript
31
Краткая история браузеров. 2010 год




32
Краткая история браузеров. 2010 год


     Chrome 4.0-8.0




32
Краткая история браузеров. 2010 год


     Chrome 4.0-8.0
     • Полное прохождение тестов ACID3




32
Краткая история браузеров. 2010 год


     Chrome 4.0-8.0
     • Полное прохождение тестов ACID3
     • Улучшена скорость работы JavaScript




32
Краткая история браузеров. 2010 год


     Chrome 4.0-8.0
     • Полное прохождение тестов ACID3
     • Улучшена скорость работы JavaScript

     Opera 10.50-11.00




32
Краткая история браузеров. 2010 год


     Chrome 4.0-8.0
     • Полное прохождение тестов ACID3
     • Улучшена скорость работы JavaScript

     Opera 10.50-11.00
     • Новый JavaScript-движок Carakan




32
Краткая история браузеров. 2010 год


     Chrome 4.0-8.0
     • Полное прохождение тестов ACID3
     • Улучшена скорость работы JavaScript

     Opera 10.50-11.00
     • Новый JavaScript-движок Carakan

     Firefox 3.6



32
Краткая история браузеров. 2010 год


     Chrome 4.0-8.0
     • Полное прохождение тестов ACID3
     • Улучшена скорость работы JavaScript

     Opera 10.50-11.00
     • Новый JavaScript-движок Carakan

     Firefox 3.6
     • Улучшена скорость работы JavaScript


32
Краткая история браузеров. 2011 год




33
Краткая история браузеров. 2011 год

     Firefox 4.0-9.0




33
Краткая история браузеров. 2011 год

     Firefox 4.0-9.0
     • Gecko 2.0 и JägerMonkey




33
Краткая история браузеров. 2011 год

     Firefox 4.0-9.0
     • Gecko 2.0 и JägerMonkey
     • Переход на быстрый цикл разработки релизов




33
Краткая история браузеров. 2011 год

     Firefox 4.0-9.0
     • Gecko 2.0 и JägerMonkey
     • Переход на быстрый цикл разработки релизов
     • Acid3 — 97/100




33
Краткая история браузеров. 2011 год

     Firefox 4.0-9.0
     • Gecko 2.0 и JägerMonkey
     • Переход на быстрый цикл разработки релизов
     • Acid3 — 97/100

     Internet Explorer 9.0




33
Краткая история браузеров. 2011 год

     Firefox 4.0-9.0
     • Gecko 2.0 и JägerMonkey
     • Переход на быстрый цикл разработки релизов
     • Acid3 — 97/100

     Internet Explorer 9.0
     • Поддержка большей части CSS3




33
Краткая история браузеров. 2011 год

     Firefox 4.0-9.0
     • Gecko 2.0 и JägerMonkey
     • Переход на быстрый цикл разработки релизов
     • Acid3 — 97/100

     Internet Explorer 9.0
     • Поддержка большей части CSS3
     • Более быстрая обработка JavaScript




33
Краткая история браузеров. 2011 год

     Firefox 4.0-9.0
     • Gecko 2.0 и JägerMonkey
     • Переход на быстрый цикл разработки релизов
     • Acid3 — 97/100

     Internet Explorer 9.0
     • Поддержка большей части CSS3
     • Более быстрая обработка JavaScript
     • Аудио- и видеотеги HTML5



33
Краткая история браузеров. 2011 год




34
Краткая история браузеров. 2011 год

     Chrome 9.0-16.00




34
Краткая история браузеров. 2011 год

     Chrome 9.0-16.00
     • Ускорено выполнение JavaScript




34
Краткая история браузеров. 2011 год

     Chrome 9.0-16.00
     • Ускорено выполнение JavaScript
     • Становится вторым по полярности браузером в мире




34
Краткая история браузеров. 2011 год

     Chrome 9.0-16.00
     • Ускорено выполнение JavaScript
     • Становится вторым по полярности браузером в мире
       – cмещая Firefox на третье место




34
Краткая история браузеров. 2011 год

     Chrome 9.0-16.00
     • Ускорено выполнение JavaScript
     • Становится вторым по полярности браузером в мире
       – cмещая Firefox на третье место

     Safari 5.1




34
Краткая история браузеров. 2011 год

     Chrome 9.0-16.00
     • Ускорено выполнение JavaScript
     • Становится вторым по полярности браузером в мире
       – cмещая Firefox на третье место

     Safari 5.1
     • Переход на Webkit2




34
Краткая история браузеров. 2011 год

     Chrome 9.0-16.00
     • Ускорено выполнение JavaScript
     • Становится вторым по полярности браузером в мире
       – cмещая Firefox на третье место

     Safari 5.1
     • Переход на Webkit2
       – быстрее и надёжнее



34
Краткая история браузеров. 2011 год

     Chrome 9.0-16.00
     • Ускорено выполнение JavaScript
     • Становится вторым по полярности браузером в мире
       – cмещая Firefox на третье место

     Safari 5.1
     • Переход на Webkit2
       – быстрее и надёжнее
       – обработка web контента производится в изолированных
         процессах


34
Краткая история браузеров. 2011 год

     Chrome 9.0-16.00
     • Ускорено выполнение JavaScript
     • Становится вторым по полярности браузером в мире
       – cмещая Firefox на третье место

     Safari 5.1
     • Переход на Webkit2
       – быстрее и надёжнее
       – обработка web контента производится в изолированных
         процессах
       – так же как и в Хроме, но реализовано на уровне движка
34
Краткая история браузеров. 2012 год




35
Краткая история браузеров. 2012 год



     Chrome 17.00-21.00




35
Краткая история браузеров. 2012 год



     Chrome 17.00-21.00
     • Новый V8 «JavaScript Harmony»




35
Краткая история браузеров. 2012 год



     Chrome 17.00-21.00
     • Новый V8 «JavaScript Harmony»
     • Поддержка протокола SPDY




35
Краткая история браузеров. 2012 год



     Chrome 17.00-21.00
     • Новый V8 «JavaScript Harmony»
     • Поддержка протокола SPDY

     Firefox 10.00-15.0.1




35
Краткая история браузеров. 2012 год



     Chrome 17.00-21.00
     • Новый V8 «JavaScript Harmony»
     • Поддержка протокола SPDY

     Firefox 10.00-15.0.1
     • Поддержка протокола SPDY




35
Краткая история браузеров. 2012 год



     Chrome 17.00-21.00
     • Новый V8 «JavaScript Harmony»
     • Поддержка протокола SPDY

     Firefox 10.00-15.0.1
     • Поддержка протокола SPDY
     • Борьба с утечками памяти



35
Браузерные войны
Браузерные войны




37
Браузерные войны



     • Борьба за господство на рынке web-браузеров




37
Браузерные войны



     • Борьба за господство на рынке web-браузеров
     • Вроде бы ничего страшного




37
Браузерные войны



     • Борьба за господство на рынке web-браузеров
     • Вроде бы ничего страшного
     • Если бы не используемые методы — добавление
       специфических, нестандартных возможностей к браузеру




37
Браузерные войны



     • Борьба за господство на рынке web-браузеров
     • Вроде бы ничего страшного
     • Если бы не используемые методы — добавление
       специфических, нестандартных возможностей к браузеру
     • В результате — многие сайты «оптимизированы» для
       конкретного браузера




37
Браузерные войны



     • Борьба за господство на рынке web-браузеров
     • Вроде бы ничего страшного
     • Если бы не используемые методы — добавление
       специфических, нестандартных возможностей к браузеру
     • В результате — многие сайты «оптимизированы» для
       конкретного браузера
     • Но вообще, проявляется по разному




37
Первая браузерная война




39
Первая браузерная война

     Причины




39
Первая браузерная война

     Причины
     • дерзкий Netscape




39
Первая браузерная война

     Причины
     • дерзкий Netscape
     • отказ в продаже Microsoft своих технологий




39
Первая браузерная война

     Причины
     • дерзкий Netscape
     • отказ в продаже Microsoft своих технологий
     • полное отсутствие Microsoft на рынке браузеров




39
Первая браузерная война

     Причины
     • дерзкий Netscape
     • отказ в продаже Microsoft своих технологий
     • полное отсутствие Microsoft на рынке браузеров

     Факторы




39
Первая браузерная война

     Причины
     • дерзкий Netscape
     • отказ в продаже Microsoft своих технологий
     • полное отсутствие Microsoft на рынке браузеров

     Факторы
     • Netscape коммерческая компания, которой необходимо
       зарабатывать деньги




39
Первая браузерная война

     Причины
     • дерзкий Netscape
     • отказ в продаже Microsoft своих технологий
     • полное отсутствие Microsoft на рынке браузеров

     Факторы
     • Netscape коммерческая компания, которой необходимо
       зарабатывать деньги
     • У Microsoft монополия на рынке операционных систем



39
Первая браузерная война

     Причины
     • дерзкий Netscape
     • отказ в продаже Microsoft своих технологий
     • полное отсутствие Microsoft на рынке браузеров

     Факторы
     • Netscape коммерческая компания, которой необходимо
       зарабатывать деньги
     • У Microsoft монополия на рынке операционных систем
     • Могут позволить раздавать браузер бесплатно


39
Первая браузерная война

     Причины
     • дерзкий Netscape
     • отказ в продаже Microsoft своих технологий
     • полное отсутствие Microsoft на рынке браузеров

     Факторы
     • Netscape коммерческая компания, которой необходимо
       зарабатывать деньги
     • У Microsoft монополия на рынке операционных систем
     • Могут позволить раздавать браузер бесплатно
     • Ну и вообще Internet Explorer лучше

39
Первая браузерная война




40
Первая браузерная война




     Итоги




40
Первая браузерная война




     Итоги
     • AOL покупает Netscape




40
Первая браузерная война




     Итоги
     • AOL покупает Netscape
     • Internet Explorer становится доминирующим браузером
       на рынке




40
Первая браузерная война




     Итоги
     • AOL покупает Netscape
     • Internet Explorer становится доминирующим браузером
       на рынке
     • Суд: Соединённые штаты против Microsoft




40
Режимы отображения
Основные режимы отображения




46
Основные режимы отображения




     Quirks Mode (clck.ru/27PuB)




46
Основные режимы отображения




     Quirks Mode (clck.ru/27PuB)
     Standards Mode




46
Основные режимы отображения




     Quirks Mode (clck.ru/27PuB)
     Standards Mode
     Almost Standards Mode (clck.ru/27Q1n)




46
Режимы отображения в IE




47
Режимы отображения в IE



     IE7 Standards




47
Режимы отображения в IE



     IE7 Standards
     IE8 Standards




47
Режимы отображения в IE



     IE7 Standards
     IE8 Standards
     IE8 Almost Standards




47
Режимы отображения в IE



     IE7 Standards
     IE8 Standards
     IE8 Almost Standards
     IE9 Standards




47
Режимы отображения в IE



     IE7 Standards
     IE8 Standards
     IE8 Almost Standards
     IE9 Standards
     IE9 Almost Standards



47
Режимы отображения в IE



     IE7 Standards
     IE8 Standards
     IE8 Almost Standards
     IE9 Standards
     IE9 Almost Standards


                               clck.ru/27QXD
47
UserAgent
User Agent — это клиентское приложение,
     использующее определённый сетевой протокол.
     Термин обычно используется для приложений,
     осуществляющих доступ к веб-сайтам, таким как
     браузеры, поисковые роботы (и другие «пауки»),
     мобильные телефоны и другие устройства

     Wikipedia




49
The User-Agent request-header field contains information
     about the user agent originating the request. This is for
     statistical purposes, the tracing of protocol violations, and
     automated recognition of user agents for the sake of
     tailoring responses to avoid particular user agent limitations.
     User agents SHOULD include this field with requests.

     RFC 2616, 14.43




50
UserAgent



     Пример HTTP запроса

      GET / HTTP/1.1
      Host: www.yandex.ru
      Connection: keep-alive
      Cache-Control: no-cache
      Pragma: no-cache
      User-Agent: Mozilla/5.0 (Macintosh; ru-ru; Intel Mac OS X
      10_8_0) AppleWebKit/535.22 (KHTML, like Gecko) Chrome/
      19.0.1048.0 Safari/535.22
      Accept: text/html
      Accept-Encoding: gzip,deflate,sdch
      Accept-Language: en-US,en;q=0.8
      Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3

51
User-Agent    = "User-Agent" ":" 1*( product | comment )

     product = token ["/" product-version]
     product-version = token

     token = 1*<any CHAR except CTLs or separators>
     comment = "(" *( ctext | quoted-pair | comment ) ")"

     RFC 2616




52
UserAgent




                 clck.ru/1WYC
                 clck.ru/27hxV
53
UA: Mosaic




     NCSA_Mosaic/2.7b4 (X11;AIX 1)




54
UA: Netscape Navigator




     Mozilla/3.0 (Macintosh; I; PPC)




55
UA: Internet Explorer




     Mozilla/1.22 (compatible; MSIE 2.0; Windows 95)




56
UA: Mozilla




     Mozilla/5.001 (Macintosh; N; PPC; ja) Gecko/25250101




57
UA:Firefox




     Mozilla/5.0 (X11; Linux i686; rv:1.7.5) Gecko/20041108
     Firefox/1.0




58
UA: Konqueror




     Mozilla/5.0 (compatible; Konqueror/3.2; FreeBSD)
     (KHTML, like Gecko)




59
UA: Safari




     Mozilla/5.0 (Macintosh; U; PPC Mac OS X;
     en-us) AppleWebKit/85.7 (KHTML, like Gecko)
     Safari/85.6




60
UA: Chrome




     Mozilla/5.0 (Windows NT 6.1; WOW64)
     AppleWebKit/537.1 (KHTML, like Gecko)
     Chrome/22.0.1207.1 Safari/537.1




61
Кроссбраузерность
Кроссбра́узерность — свойство сайта отображаться
     и работать во всех популярных браузерах идентично.
     Под идентичностью понимается отсутствие развалов
     верстки и способность отображать материал с
     одинаковой степенью читабельности.

     Wikipedia




63
Кроссбраузерность




64
Кроссбраузерность



     • Много браузеров




64
Кроссбраузерность



     • Много браузеров
       – их вообще много




64
Кроссбраузерность



     • Много браузеров
       – их вообще много
       – да ещё и разных версий




64
Кроссбраузерность



     • Много браузеров
       – их вообще много
       – да ещё и разных версий
       – а ещё с разным уровнем поддежки технологий




64
Кроссбраузерность



     • Много браузеров
       – их вообще много
       – да ещё и разных версий
       – а ещё с разным уровнем поддежки технологий
     • Требуется дополнительное время, которое стоит денег




64
Кроссбраузерность



     • Много браузеров
       – их вообще много
       – да ещё и разных версий
       – а ещё с разным уровнем поддежки технологий
     • Требуется дополнительное время, которое стоит денег
     • Но иначе — посетитель уйдёт




64
Кроссбраузерность



     • Много браузеров
       – их вообще много
       – да ещё и разных версий
       – а ещё с разным уровнем поддежки технологий
     • Требуется дополнительное время, которое стоит денег
     • Но иначе — посетитель уйдёт
     • Ну и вообще это плохо



64
Limited browser support




65
Limited browser support




     • Поддержка ограниченного количества браузеров




65
Limited browser support




     • Поддержка ограниченного количества браузеров
     • Может проявляться по разному




65
Limited browser support




     • Поддержка ограниченного количества браузеров
     • Может проявляться по разному
       – блокировка работы в некоторых браузерах




65
Limited browser support




     • Поддержка ограниченного количества браузеров
     • Может проявляться по разному
       – блокировка работы в некоторых браузерах
       – предупреждение о возможных проблемах




65
Limited browser support




     • Поддержка ограниченного количества браузеров
     • Может проявляться по разному
       – блокировка работы в некоторых браузерах
       – предупреждение о возможных проблемах
       – просто ограниченная поддержка



65
Limited browser support




66
Browser detection




     Определение браузера по его особенностям:

      .bang
      {
          // some properties
      }

      * html .bang
      {
          zoom: 1;
      }


67
Graceful degradation




68
Graceful degradation


     • Современные и популярные браузеры получают
       контент в полном виде




68
Graceful degradation


     • Современные и популярные браузеры получают
       контент в полном виде
     • Остальные — в упрощённом




68
Graceful degradation


     • Современные и популярные браузеры получают
       контент в полном виде
     • Остальные — в упрощённом




68
Graceful degradation


     • Современные и популярные браузеры получают
       контент в полном виде
     • Остальные — в упрощённом




68
Graceful degradation


     • Современные и популярные браузеры получают
       контент в полном виде
     • Остальные — в упрощённом




68
Progressive enhancement




69
Progressive enhancement


     • основной контент доступен во всех браузерах




69
Progressive enhancement


     • основной контент доступен во всех браузерах
     • основная функциональность доступна во всех браузерах




69
Progressive enhancement


     • основной контент доступен во всех браузерах
     • основная функциональность доступна во всех браузерах
     • не используется экстраразметка для эмуляции
       неподдерживаемых свойств




69
Progressive enhancement


     • основной контент доступен во всех браузерах
     • основная функциональность доступна во всех браузерах
     • не используется экстраразметка для эмуляции
       неподдерживаемых свойств
     • улучшение внешнего вида достигается за счет
       дополнительных браузерозависимых стилей




69
Progressive enhancement


     • основной контент доступен во всех браузерах
     • основная функциональность доступна во всех браузерах
     • не используется экстраразметка для эмуляции
       неподдерживаемых свойств
     • улучшение внешнего вида достигается за счет
       дополнительных браузерозависимых стилей
     • улучшение функциональности достигается за счет
       «ненавязчивых» (unobtrusive) скриптов




69
Progressive enhancement


     • основной контент доступен во всех браузерах
     • основная функциональность доступна во всех браузерах
     • не используется экстраразметка для эмуляции
       неподдерживаемых свойств
     • улучшение внешнего вида достигается за счет
       дополнительных браузерозависимых стилей
     • улучшение функциональности достигается за счет
       «ненавязчивых» (unobtrusive) скриптов
     • учитываются возможности браузера пользователя


69
Feature detection




     Проверка поддержки тэга video:

         if(!!document.createElement('video').canPlayType) {
             // Insert HTML5 Video
         } else {
             // Insert Flash Video
         }




70
Feature detection
      <!DOCTYPE html>
      <html class="draganddrop rgba ...">
       <head>
          <title>Bang!</title>
          <script src="//yandex.st/modernizr/2.6.2/
      modernizr.js"></script>
          ...
        </head>
        <body>
          ..
          <script>
            if(!Modernizr.inputtypes.date) {
              // no native support for <input type="date"> :(
              // maybe build one yourself with Dojo or jQueryUI
            }
          </script>
        </body>
      </html>


71
Здравый смысл




72
Здравый смысл



     Limited browser support




72
Здравый смысл



     Limited browser support
     • Список совместимости




72
Здравый смысл



     Limited browser support
     • Список совместимости
     • Основывается на доле браузера среди нашей аудитории




72
Здравый смысл



     Limited browser support
     • Список совместимости
     • Основывается на доле браузера среди нашей аудитории
       – > 2% — полная совместимость




72
Здравый смысл



     Limited browser support
     • Список совместимости
     • Основывается на доле браузера среди нашей аудитории
       – > 2% — полная совместимость
       – < 2% — слабая совместимость




72
Здравый смысл



     Limited browser support
     • Список совместимости
     • Основывается на доле браузера среди нашей аудитории
       – > 2% — полная совместимость
       – < 2% — слабая совместимость
       – < 0.5% — не поддерживаем



72
Здравый смысл



     Limited browser support
     • Список совместимости
     • Основывается на доле браузера среди нашей аудитории
       – > 2% — полная совместимость
       – < 2% — слабая совместимость
       – < 0.5% — не поддерживаем
     • Но контент должен быть доступен везде



72
Здравый смысл




     Browser detection: условные комментарии

      <!--[if gt IE 7]><!-->
      <link rel="stylesheet" href="//yandex.st/.../style.css">
      <!--<![endif]-->
      <!--[if lt IE 8]>
      <link rel="stylesheet" href="//yandex.st/.../style.ie.css">
      <![endif]-->




73
Здравый смысл




     Browser detection: дополнительные стили для iPad

      {
          block: 'b-page',
          head: [
             ...
             data.isIpad ? {
               elem: 'css',
               url: '//yandex.st/.../style.ipad.css'
             } : '',
          ],
          ...
      }

74
Здравый смысл
     Feature detection: определение JavaScript и режима отображения

      <!doctype html>
      <html class="i-ua_js_no i-ua_css_standard">
        <head>
          <script>
            ;(function(d,e,c,r) {
               e=d.documentElement; c="className";
               r="replace";
               e[c]=e[c][r]("i-ua_js_no","i-ua_js_yes");
               if(d.compatMode!="CSS1Compat")
                  e[c]=e[c][r]("i-ua_css_standart","i-
      ua_css_quirks")
            })(document);
          </script>
          <link rel="stylesheet" href="//yandex.st/.../style.css">
          <style>
            .b-huge-js-block { display: none }
          </style>
75
Списки совместимости в IE




76
Списки совместимости в IE




     • Internet Explorer старше седьмой версии




76
Списки совместимости в IE




     • Internet Explorer старше седьмой версии
     • Приезжают вместе с обновлениями




76
Списки совместимости в IE




     • Internet Explorer старше седьмой версии
     • Приезжают вместе с обновлениями
     • Основываются на поведении пользователей




76
Списки совместимости в IE




     •   Internet Explorer старше седьмой версии
     •   Приезжают вместе с обновлениями
     •   Основываются на поведении пользователей
     •   support.microsoft.com/kb/960321




76
Browser JavaScript в Opera




77
Browser JavaScript в Opera


     • Не путать с UserJS




77
Browser JavaScript в Opera


     • Не путать с UserJS
     • Автоматически исправляет




77
Browser JavaScript в Opera


     • Не путать с UserJS
     • Автоматически исправляет
       – веб страницы




77
Browser JavaScript в Opera


     • Не путать с UserJS
     • Автоматически исправляет
       – веб страницы
       – устаревшие скрипты




77
Browser JavaScript в Opera


     • Не путать с UserJS
     • Автоматически исправляет
       – веб страницы
       – устаревшие скрипты
       – страницы которые по неосторожности блокируют Оперу




77
Browser JavaScript в Opera


     • Не путать с UserJS
     • Автоматически исправляет
       – веб страницы
       – устаревшие скрипты
       – страницы которые по неосторожности блокируют Оперу
     • Лежит на ГитХабе




77
Browser JavaScript в Opera


     • Не путать с UserJS
     • Автоматически исправляет
       – веб страницы
       – устаревшие скрипты
       – страницы которые по неосторожности блокируют Оперу
     • Лежит на ГитХабе
       – operasoftware/browserjs



77
Browser JavaScript в Opera


     • Не путать с UserJS
     • Автоматически исправляет
       – веб страницы
       – устаревшие скрипты
       – страницы которые по неосторожности блокируют Оперу
     • Лежит на ГитХабе
       – operasoftware/browserjs
     • www.opera.com/docs/browserjs/



77
Browser JavaScript в Opera




     Кусок скрипта который чинит Facebook:

      if(hostname.endsWith('www.facebook.com')){
          opera.addEventListener('BeforeCSS', function(e) {
              e.cssText = e.cssText.replace(/border-(top|bottom)-
      (right|left)-radius:3px/g, '');
          }, false);
      }




78
Заключение
Заключение




81
Заключение




     • Движков много, а браузеров ещё больше




81
Заключение




     • Движков много, а браузеров ещё больше
     • Браузеры сложные




81
Заключение




     • Движков много, а браузеров ещё больше
     • Браузеры сложные
     • Следует следить за их развитием, чтобы быть в курсе




81
Заключение




     •   Движков много, а браузеров ещё больше
     •   Браузеры сложные
     •   Следует следить за их развитием, чтобы быть в курсе
     •   Всё будет хорошо




81
Заключение




     •   Движков много, а браузеров ещё больше
     •   Браузеры сложные
     •   Следует следить за их развитием, чтобы быть в курсе
     •   Всё будет хорошо
     •   А может быть и плохо




81
Георгий Мостоловица

     Разработчик интерфейсов




     gfranco@yandex-team.ru




Спасибо

Contenu connexe

Similaire à Георгий Мостоловица — «Браузеры»

браузеры презентация
браузеры презентациябраузеры презентация
браузеры презентация
4ertenka
 
Веб-браузеры
Веб-браузерыВеб-браузеры
Веб-браузеры
tihonya94
 
браузеры презентация
браузеры презентациябраузеры презентация
браузеры презентация
4ertenka
 
Browzer
BrowzerBrowzer
Browzer
IKTO
 
Prezentacija
PrezentacijaPrezentacija
Prezentacija
jawka
 
JavaScript завтра / Сергей Рубанов (Exante Limited)
JavaScript завтра / Сергей Рубанов  (Exante Limited)JavaScript завтра / Сергей Рубанов  (Exante Limited)
JavaScript завтра / Сергей Рубанов (Exante Limited)
Ontico
 
Эволюция разработки (Ермаков Игорь), Форум технологий Mail.Ru Group
Эволюция разработки (Ермаков Игорь), Форум технологий Mail.Ru GroupЭволюция разработки (Ермаков Игорь), Форум технологий Mail.Ru Group
Эволюция разработки (Ермаков Игорь), Форум технологий Mail.Ru Group
tfmailru
 
Cовременный станок верстальщика
Cовременный станок верстальщикаCовременный станок верстальщика
Cовременный станок верстальщика
mcslayer
 

Similaire à Георгий Мостоловица — «Браузеры» (20)

Кто такой фронтендер?
Кто такой фронтендер?Кто такой фронтендер?
Кто такой фронтендер?
 
Владим Исаев. Браузеры: «убийцы» операционных систем
Владим Исаев. Браузеры: «убийцы» операционных системВладим Исаев. Браузеры: «убийцы» операционных систем
Владим Исаев. Браузеры: «убийцы» операционных систем
 
браузеры презентация
браузеры презентациябраузеры презентация
браузеры презентация
 
Веб-браузеры
Веб-браузерыВеб-браузеры
Веб-браузеры
 
браузеры презентация
браузеры презентациябраузеры презентация
браузеры презентация
 
HappyDev-lite-2016-осень, день 2 04 Михаил Колганов. Интерфейс пользователя ...
HappyDev-lite-2016-осень, день 2 04 Михаил Колганов. Интерфейс пользователя ...HappyDev-lite-2016-осень, день 2 04 Михаил Колганов. Интерфейс пользователя ...
HappyDev-lite-2016-осень, день 2 04 Михаил Колганов. Интерфейс пользователя ...
 
Browzer
BrowzerBrowzer
Browzer
 
«Нужно больше шин! Eventbus based framework vertx.io»
«Нужно больше шин! Eventbus based framework vertx.io»«Нужно больше шин! Eventbus based framework vertx.io»
«Нужно больше шин! Eventbus based framework vertx.io»
 
Vert.x eventbus-based framework
Vert.x eventbus-based frameworkVert.x eventbus-based framework
Vert.x eventbus-based framework
 
Web browser 2015
Web browser 2015Web browser 2015
Web browser 2015
 
Prezentacija
PrezentacijaPrezentacija
Prezentacija
 
JavaScript завтра
JavaScript завтраJavaScript завтра
JavaScript завтра
 
JavaScript завтра / Сергей Рубанов (Exante Limited)
JavaScript завтра / Сергей Рубанов  (Exante Limited)JavaScript завтра / Сергей Рубанов  (Exante Limited)
JavaScript завтра / Сергей Рубанов (Exante Limited)
 
Эволюция разработки (Ермаков Игорь), Форум технологий Mail.Ru Group
Эволюция разработки (Ермаков Игорь), Форум технологий Mail.Ru GroupЭволюция разработки (Ермаков Игорь), Форум технологий Mail.Ru Group
Эволюция разработки (Ермаков Игорь), Форум технологий Mail.Ru Group
 
ахраменко
ахраменкоахраменко
ахраменко
 
Cовременный станок верстальщика
Cовременный станок верстальщикаCовременный станок верстальщика
Cовременный станок верстальщика
 
Евгений Батовский, Николай Птущук "Современный станок верстальщика"
Евгений Батовский, Николай Птущук "Современный станок верстальщика"Евгений Батовский, Николай Птущук "Современный станок верстальщика"
Евгений Батовский, Николай Птущук "Современный станок верстальщика"
 
Будущее
БудущееБудущее
Будущее
 
браузеры
браузерыбраузеры
браузеры
 
браузеры
браузерыбраузеры
браузеры
 

Plus de Yandex

Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Yandex
 
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаСтруктурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Yandex
 
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаПредставление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Yandex
 
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Yandex
 
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Yandex
 
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Yandex
 
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Yandex
 
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Yandex
 
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Yandex
 
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Yandex
 
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Yandex
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Yandex
 
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Yandex
 
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Yandex
 
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Yandex
 
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Yandex
 
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Yandex
 
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Yandex
 
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Yandex
 

Plus de Yandex (20)

Предсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksПредсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of Tanks
 
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
 
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаСтруктурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
 
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаПредставление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
 
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
 
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
 
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
 
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
 
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
 
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
 
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
 
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
 
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
 
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
 
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
 
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
 
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
 
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
 
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
 

Георгий Мостоловица — «Браузеры»

  • 1.
  • 5. Браузеры Общая схема работы браузера Краткая история
  • 6. Браузеры Общая схема работы браузера Краткая история Браузерные войны
  • 7. Браузеры Общая схема работы браузера Краткая история Браузерные войны Режимы отображения
  • 8. Браузеры Общая схема работы браузера Краткая история Браузерные войны Режимы отображения UserAgent
  • 9. Браузеры Общая схема работы браузера Краткая история Браузерные войны Режимы отображения UserAgent Кроссбраузерность
  • 10. Бра́узер — программное обеспечение для просмотра веб-сайтов, т.е. для запроса веб-страниц, их обработки, вывода и перехода от одной страницы к другой. Wikipedia 4
  • 12. Архитектура браузеров Пользовательский интерфейс Хранилище данных Высокоуровневый движок Движок рендеринга Сеть JS UI Backend 6
  • 16. Краткая история браузеров. 1991 год WorldWideWeb • Начало эпохи браузеров 8
  • 17. Краткая история браузеров. 1991 год WorldWideWeb • Начало эпохи браузеров • Разработал Тим Бернерс-Ли 8
  • 18. Краткая история браузеров. 1991 год WorldWideWeb • Начало эпохи браузеров • Разработал Тим Бернерс-Ли – он очень крутой 8
  • 19. Краткая история браузеров. 1991 год WorldWideWeb • Начало эпохи браузеров • Разработал Тим Бернерс-Ли – он очень крутой – изобретатель всемирной паутины и как следствие: URI, URL, HTTP, HTML, семантического веба 8
  • 20. Краткая история браузеров. 1991 год WorldWideWeb • Начало эпохи браузеров • Разработал Тим Бернерс-Ли – он очень крутой – изобретатель всемирной паутины и как следствие: URI, URL, HTTP, HTML, семантического веба • Переименован в Nexus, чтобы избежать путаницы 8
  • 21. Краткая история браузеров. 1991 год WorldWideWeb • Начало эпохи браузеров • Разработал Тим Бернерс-Ли – он очень крутой – изобретатель всемирной паутины и как следствие: URI, URL, HTTP, HTML, семантического веба • Переименован в Nexus, чтобы избежать путаницы • Графический браузер 8
  • 22. Краткая история браузеров. 1991 год WorldWideWeb • Начало эпохи браузеров • Разработал Тим Бернерс-Ли – он очень крутой – изобретатель всемирной паутины и как следствие: URI, URL, HTTP, HTML, семантического веба • Переименован в Nexus, чтобы избежать путаницы • Графический браузер – но картинки только в отдельном окне 8
  • 23. Краткая история браузеров. 1991 год WorldWideWeb • Начало эпохи браузеров • Разработал Тим Бернерс-Ли – он очень крутой – изобретатель всемирной паутины и как следствие: URI, URL, HTTP, HTML, семантического веба • Переименован в Nexus, чтобы избежать путаницы • Графический браузер – но картинки только в отдельном окне – WYSIWYG 8
  • 24. Краткая история браузеров. 1991 год WorldWideWeb • Начало эпохи браузеров • Разработал Тим Бернерс-Ли – он очень крутой – изобретатель всемирной паутины и как следствие: URI, URL, HTTP, HTML, семантического веба • Переименован в Nexus, чтобы избежать путаницы • Графический браузер – но картинки только в отдельном окне – WYSIWYG – NeXT, Objective C 8
  • 27. Краткая история браузеров. 1993 год Mosaic • Разработан в NCSA 9
  • 28. Краткая история браузеров. 1993 год Mosaic • Разработан в NCSA • Популяризовал веб 9
  • 29. Краткая история браузеров. 1993 год Mosaic • Разработан в NCSA • Популяризовал веб – удобный установщик 9
  • 30. Краткая история браузеров. 1993 год Mosaic • Разработан в NCSA • Популяризовал веб – удобный установщик – понятный интерфейс 9
  • 31. Краткая история браузеров. 1993 год Mosaic • Разработан в NCSA • Популяризовал веб – удобный установщик – понятный интерфейс – Windows, Unix и Mac версия 9
  • 32. Краткая история браузеров. 1993 год Mosaic • Разработан в NCSA • Популяризовал веб – удобный установщик – понятный интерфейс – Windows, Unix и Mac версия – и конечно же инлайновые картинки 9
  • 34. Краткая история браузеров. 1994 год Netscape Navigator 1.x 10
  • 35. Краткая история браузеров. 1994 год Netscape Navigator 1.x • Обладает самыми широкими возможностями 10
  • 36. Краткая история браузеров. 1994 год Netscape Navigator 1.x • Обладает самыми широкими возможностями • Стремительно набирает популярность 10
  • 37. Краткая история браузеров. 1994 год Netscape Navigator 1.x • Обладает самыми широкими возможностями • Стремительно набирает популярность • Сodename Mozilla (Mosaic Killer) 10
  • 38. Краткая история браузеров. 1994 год Netscape Navigator 1.x • Обладает самыми широкими возможностями • Стремительно набирает популярность • Сodename Mozilla (Mosaic Killer) – вообще сложная история с названием Mozilla 10
  • 39. Краткая история браузеров. 1994 год Netscape Navigator 1.x • Обладает самыми широкими возможностями • Стремительно набирает популярность • Сodename Mozilla (Mosaic Killer) – вообще сложная история с названием Mozilla – ещё и имя маскота 10
  • 40. Краткая история браузеров. 1994 год Netscape Navigator 1.x • Обладает самыми широкими возможностями • Стремительно набирает популярность • Сodename Mozilla (Mosaic Killer) – вообще сложная история с названием Mozilla – ещё и имя маскота 10
  • 42. Краткая история браузеров. 1996 год Netscape Navigator 2.x-3.x 11
  • 43. Краткая история браузеров. 1996 год Netscape Navigator 2.x-3.x • Добавлена поддержка 11
  • 44. Краткая история браузеров. 1996 год Netscape Navigator 2.x-3.x • Добавлена поддержка – LiveAudio, LiveVideo, QuickTime, POP3, HTML 3.2 11
  • 45. Краткая история браузеров. 1996 год Netscape Navigator 2.x-3.x • Добавлена поддержка – LiveAudio, LiveVideo, QuickTime, POP3, HTML 3.2 – Java, JavaScript, плагины и само собой анимированые гифки 11
  • 46. Краткая история браузеров. 1996 год Netscape Navigator 2.x-3.x • Добавлена поддержка – LiveAudio, LiveVideo, QuickTime, POP3, HTML 3.2 – Java, JavaScript, плагины и само собой анимированые гифки – email клиент и многое другое 11
  • 47. Краткая история браузеров. 1996 год Netscape Navigator 2.x-3.x • Добавлена поддержка – LiveAudio, LiveVideo, QuickTime, POP3, HTML 3.2 – Java, JavaScript, плагины и само собой анимированые гифки – email клиент и многое другое • Около 90% рынка 11
  • 50. Краткая история браузеров. 1996 год Opera 2 • публичная версия 12
  • 51. Краткая история браузеров. 1996 год Opera 2 • публичная версия • поддержка фреймов 12
  • 53. Краткая история браузеров. 1996 год Internet Explorer 1-2 13
  • 54. Краткая история браузеров. 1996 год Internet Explorer 1-2 • Разработан на основе Mosaic 13
  • 55. Краткая история браузеров. 1996 год Internet Explorer 1-2 • Разработан на основе Mosaic • Поддерживает CSS 13
  • 56. Краткая история браузеров. 1996 год Internet Explorer 1-2 • Разработан на основе Mosaic • Поддерживает CSS – правда очень частично 13
  • 57. Краткая история браузеров. 1996 год Internet Explorer 1-2 • Разработан на основе Mosaic • Поддерживает CSS – правда очень частично – но зато, впервые на рынке 13
  • 58. Краткая история браузеров. 1996 год Internet Explorer 1-2 • Разработан на основе Mosaic • Поддерживает CSS – правда очень частично – но зато, впервые на рынке • Плагины ActiveX, Java 13
  • 59. Краткая история браузеров. 1996 год Internet Explorer 1-2 • Разработан на основе Mosaic • Поддерживает CSS – правда очень частично – но зато, впервые на рынке • Плагины ActiveX, Java • Поставляется с Windows 95 OSR2 13
  • 60. Краткая история браузеров. 1996 год Internet Explorer 1-2 • Разработан на основе Mosaic • Поддерживает CSS – правда очень частично – но зато, впервые на рынке • Плагины ActiveX, Java • Поставляется с Windows 95 OSR2 • Первая версия включавшая синюю букву E 13
  • 62. Краткая история браузеров. 1997 год Netscape Navigator 4.x 14
  • 63. Краткая история браузеров. 1997 год Netscape Navigator 4.x • CSS1 частично 14
  • 64. Краткая история браузеров. 1997 год Netscape Navigator 4.x • CSS1 частично • Очень старый движок по сравнению с IE4 14
  • 65. Краткая история браузеров. 1997 год Netscape Navigator 4.x • CSS1 частично • Очень старый движок по сравнению с IE4 • Начало падения рыночной доли 14
  • 66. Краткая история браузеров. 1997 год Netscape Navigator 4.x • CSS1 частично • Очень старый движок по сравнению с IE4 • Начало падения рыночной доли Opera 3 14
  • 67. Краткая история браузеров. 1997 год Netscape Navigator 4.x • CSS1 частично • Очень старый движок по сравнению с IE4 • Начало падения рыночной доли Opera 3 • кроссплатформенная 14
  • 68. Краткая история браузеров. 1997 год Netscape Navigator 4.x • CSS1 частично • Очень старый движок по сравнению с IE4 • Начало падения рыночной доли Opera 3 • кроссплатформенная • JavaScript 14
  • 70. Краткая история браузеров. 1997 год Internet Explorer 4 15
  • 71. Краткая история браузеров. 1997 год Internet Explorer 4 • Код полностью переписан 15
  • 72. Краткая история браузеров. 1997 год Internet Explorer 4 • Код полностью переписан • Cобственные расширения JavaScript, не совместимые с Netscape 15
  • 73. Краткая история браузеров. 1997 год Internet Explorer 4 • Код полностью переписан • Cобственные расширения JavaScript, не совместимые с Netscape • Собственная объектная модель документа (DOM) 15
  • 74. Краткая история браузеров. 1997 год Internet Explorer 4 • Код полностью переписан • Cобственные расширения JavaScript, не совместимые с Netscape • Собственная объектная модель документа (DOM) • Проще и стабильнее чем в Netscape 15
  • 75. Краткая история браузеров. 1997 год Internet Explorer 4 • Код полностью переписан • Cобственные расширения JavaScript, не совместимые с Netscape • Собственная объектная модель документа (DOM) • Проще и стабильнее чем в Netscape • Поставляется с Windows 98 15
  • 77. Краткая история браузеров. 1998 год Netscape. Последние дни. 16
  • 78. Краткая история браузеров. 1998 год Netscape. Последние дни. – Очень старый движок 16
  • 79. Краткая история браузеров. 1998 год Netscape. Последние дни. – Очень старый движок – Множество ошибок обработки HTML и CSS 16
  • 80. Краткая история браузеров. 1998 год Netscape. Последние дни. – Очень старый движок – Множество ошибок обработки HTML и CSS • AOL покупает Netscape 16
  • 81. Краткая история браузеров. 1998 год Netscape. Последние дни. – Очень старый движок – Множество ошибок обработки HTML и CSS • AOL покупает Netscape • Netscape наносит Microsoft последний удар в спину и опенсорсит код браузера в рамках проекта Mozilla 16
  • 82. Краткая история браузеров. 1998 год Netscape. Последние дни. – Очень старый движок – Множество ошибок обработки HTML и CSS • AOL покупает Netscape • Netscape наносит Microsoft последний удар в спину и опенсорсит код браузера в рамках проекта Mozilla • Internet Explorer — новый лидер рынка 16
  • 85. Краткая история браузеров. 1998 год Opera 3.5 • Начинает поддерживать CSS 17
  • 86. Краткая история браузеров. 1998 год Opera 3.5 • Начинает поддерживать CSS • Техническим директором компании становится один из создателей CSS — Хокон Виум Ли 17
  • 88. Краткая история браузеров. 1999 год Internet Explorer 5.0-5.5 18
  • 89. Краткая история браузеров. 1999 год Internet Explorer 5.0-5.5 • Улучшенная поддержка HTML и CSS 18
  • 90. Краткая история браузеров. 1999 год Internet Explorer 5.0-5.5 • Улучшенная поддержка HTML и CSS • Поддержка XML и XSL 18
  • 91. Краткая история браузеров. 1999 год Internet Explorer 5.0-5.5 • Улучшенная поддержка HTML и CSS • Поддержка XML и XSL • XMLHttpRequest 18
  • 92. Краткая история браузеров. 1999 год Internet Explorer 5.0-5.5 • Улучшенная поддержка HTML и CSS • Поддержка XML и XSL • XMLHttpRequest – можно считать днём рождения AJAX 18
  • 93. Краткая история браузеров. 1999 год Internet Explorer 5.0-5.5 • Улучшенная поддержка HTML и CSS • Поддержка XML и XSL • XMLHttpRequest – можно считать днём рождения AJAX – хотя сам термин появится гораздо позже 18
  • 94. Краткая история браузеров. 1999 год Internet Explorer 5.0-5.5 • Улучшенная поддержка HTML и CSS • Поддержка XML и XSL • XMLHttpRequest – можно считать днём рождения AJAX – хотя сам термин появится гораздо позже • Последняя шестнадцатибитная версия 18
  • 95. Краткая история браузеров. 1999 год Internet Explorer 5.0-5.5 • Улучшенная поддержка HTML и CSS • Поддержка XML и XSL • XMLHttpRequest – можно считать днём рождения AJAX – хотя сам термин появится гораздо позже • Последняя шестнадцатибитная версия • Поставляется с Windows 98 SE, Windows ME, Windows 2000 и Microsoft Office 18
  • 98. Краткая история браузеров. 2000 год Konqueror 2 • Игра на именах: 19
  • 99. Краткая история браузеров. 2000 год Konqueror 2 • Игра на именах: – Navigator — мореплаватель, штурман 19
  • 100. Краткая история браузеров. 2000 год Konqueror 2 • Игра на именах: – Navigator — мореплаватель, штурман – Explorer — путешественник, исследователь 19
  • 101. Краткая история браузеров. 2000 год Konqueror 2 • Игра на именах: – Navigator — мореплаватель, штурман – Explorer — путешественник, исследователь – Conqueror — завоеватель, победитель 19
  • 102. Краткая история браузеров. 2000 год Konqueror 2 • Игра на именах: – Navigator — мореплаватель, штурман – Explorer — путешественник, исследователь – Conqueror — завоеватель, победитель • «K» это от KDE 19
  • 103. Краткая история браузеров. 2000 год Konqueror 2 • Игра на именах: – Navigator — мореплаватель, штурман – Explorer — путешественник, исследователь – Conqueror — завоеватель, победитель • «K» это от KDE • Основан на KHTML и KJS 19
  • 106. Краткая история браузеров. 2001 год Opera 6 • Microsoft заблокировала доступ к MSN.com 20
  • 107. Краткая история браузеров. 2001 год Opera 6 • Microsoft заблокировала доступ к MSN.com – спасает опция «представляться как Internet Explorer» 20
  • 108. Краткая история браузеров. 2001 год Opera 6 • Microsoft заблокировала доступ к MSN.com – спасает опция «представляться как Internet Explorer» – в конце года полная маскировка под ИЕ 20
  • 109. Краткая история браузеров. 2001 год Opera 6 • Microsoft заблокировала доступ к MSN.com – спасает опция «представляться как Internet Explorer» – в конце года полная маскировка под ИЕ Internet Explorer 6 20
  • 110. Краткая история браузеров. 2001 год Opera 6 • Microsoft заблокировала доступ к MSN.com – спасает опция «представляться как Internet Explorer» – в конце года полная маскировка под ИЕ Internet Explorer 6 • Улучшена поддержка CSS1 и DOM уровня 1 20
  • 111. Краткая история браузеров. 2001 год Opera 6 • Microsoft заблокировала доступ к MSN.com – спасает опция «представляться как Internet Explorer» – в конце года полная маскировка под ИЕ Internet Explorer 6 • Улучшена поддержка CSS1 и DOM уровня 1 • Всё ещё не соответствует стандартам W3C 20
  • 112. Краткая история браузеров. 2001 год Opera 6 • Microsoft заблокировала доступ к MSN.com – спасает опция «представляться как Internet Explorer» – в конце года полная маскировка под ИЕ Internet Explorer 6 • Улучшена поддержка CSS1 и DOM уровня 1 • Всё ещё не соответствует стандартам W3C • Что, в купе с монополией, мешает их внедрению 20
  • 114. Краткая история браузеров. 2002 год Phoenix 0.1-0.5 21
  • 115. Краткая история браузеров. 2002 год Phoenix 0.1-0.5 • Основан на движке Gecko 21
  • 116. Краткая история браузеров. 2002 год Phoenix 0.1-0.5 • Основан на движке Gecko – который начинали разрабатывать ещё в Netscape 21
  • 117. Краткая история браузеров. 2002 год Phoenix 0.1-0.5 • Основан на движке Gecko – который начинали разрабатывать ещё в Netscape – теперь разрабатывается Mozilla Foundation 21
  • 118. Краткая история браузеров. 2002 год Phoenix 0.1-0.5 • Основан на движке Gecko – который начинали разрабатывать ещё в Netscape – теперь разрабатывается Mozilla Foundation – основной принцип — поддержка открытых стандартов 21
  • 119. Краткая история браузеров. 2002 год Phoenix 0.1-0.5 • Основан на движке Gecko – который начинали разрабатывать ещё в Netscape – теперь разрабатывается Mozilla Foundation – основной принцип — поддержка открытых стандартов • Много всего хорошего 21
  • 120. Краткая история браузеров. 2002 год Phoenix 0.1-0.5 • Основан на движке Gecko – который начинали разрабатывать ещё в Netscape – теперь разрабатывается Mozilla Foundation – основной принцип — поддержка открытых стандартов • Много всего хорошего – блокировка всплывающих окон 21
  • 121. Краткая история браузеров. 2002 год Phoenix 0.1-0.5 • Основан на движке Gecko – который начинали разрабатывать ещё в Netscape – теперь разрабатывается Mozilla Foundation – основной принцип — поддержка открытых стандартов • Много всего хорошего – блокировка всплывающих окон – табики 21
  • 122. Краткая история браузеров. 2002 год Phoenix 0.1-0.5 • Основан на движке Gecko – который начинали разрабатывать ещё в Netscape – теперь разрабатывается Mozilla Foundation – основной принцип — поддержка открытых стандартов • Много всего хорошего – блокировка всплывающих окон – табики – темы 21
  • 125. Краткая история браузеров. 2003 год Firebird 1.5 • Переименованный Phoenix 22
  • 126. Краткая история браузеров. 2003 год Firebird 1.5 • Переименованный Phoenix – проблемы с торговой маркой 22
  • 127. Краткая история браузеров. 2003 год Firebird 1.5 • Переименованный Phoenix – проблемы с торговой маркой • Какие-то улучшения 22
  • 128. Краткая история браузеров. 2003 год Firebird 1.5 • Переименованный Phoenix – проблемы с торговой маркой • Какие-то улучшения Opera 7.0-7.2 22
  • 129. Краткая история браузеров. 2003 год Firebird 1.5 • Переименованный Phoenix – проблемы с торговой маркой • Какие-то улучшения Opera 7.0-7.2 • Новый движок — Presto. Полностью переписанный 22
  • 130. Краткая история браузеров. 2003 год Firebird 1.5 • Переименованный Phoenix – проблемы с торговой маркой • Какие-то улучшения Opera 7.0-7.2 • Новый движок — Presto. Полностью переписанный • Выросла скорость и стабильность работы 22
  • 131. Краткая история браузеров. 2003 год Firebird 1.5 • Переименованный Phoenix – проблемы с торговой маркой • Какие-то улучшения Opera 7.0-7.2 • Новый движок — Presto. Полностью переписанный • Выросла скорость и стабильность работы • Очередной конфликт с MSN 22
  • 132. Краткая история браузеров. 2003 год Firebird 1.5 • Переименованный Phoenix – проблемы с торговой маркой • Какие-то улучшения Opera 7.0-7.2 • Новый движок — Presto. Полностью переписанный • Выросла скорость и стабильность работы • Очередной конфликт с MSN – люди думали, что виновата Опера 22
  • 133. Краткая история браузеров. 2003 год Firebird 1.5 • Переименованный Phoenix – проблемы с торговой маркой • Какие-то улучшения Opera 7.0-7.2 • Новый движок — Presto. Полностью переписанный • Выросла скорость и стабильность работы • Очередной конфликт с MSN – люди думали, что виновата Опера – Microsoft не признался 22
  • 136. Краткая история браузеров. 2003 год Safari 1.0 • Онован на Webkit — форке KHTML 23
  • 137. Краткая история браузеров. 2003 год Safari 1.0 • Онован на Webkit — форке KHTML – небольшой код (140 000 строк кода) 23
  • 138. Краткая история браузеров. 2003 год Safari 1.0 • Онован на Webkit — форке KHTML – небольшой код (140 000 строк кода) – хорошо спроектированный 23
  • 139. Краткая история браузеров. 2003 год Safari 1.0 • Онован на Webkit — форке KHTML – небольшой код (140 000 строк кода) – хорошо спроектированный – поддержка стандартов 23
  • 140. Краткая история браузеров. 2003 год Safari 1.0 • Онован на Webkit — форке KHTML – небольшой код (140 000 строк кода) – хорошо спроектированный – поддержка стандартов • Состоит из WebCore и JavaScriptCore 23
  • 141. Краткая история браузеров. 2003 год Safari 1.0 • Онован на Webkit — форке KHTML – небольшой код (140 000 строк кода) – хорошо спроектированный – поддержка стандартов • Состоит из WebCore и JavaScriptCore • Браузер по умолчанию на Маках 23
  • 143. Краткая история браузеров. 2004 год Internet Explorer 6 SP2 24
  • 144. Краткая история браузеров. 2004 год Internet Explorer 6 SP2 • Никаких изменений в движке 24
  • 145. Краткая история браузеров. 2004 год Internet Explorer 6 SP2 • Никаких изменений в движке Opera 7.x 24
  • 146. Краткая история браузеров. 2004 год Internet Explorer 6 SP2 • Никаких изменений в движке Opera 7.x • Проблемы с Hotmail 24
  • 147. Краткая история браузеров. 2004 год Internet Explorer 6 SP2 • Никаких изменений в движке Opera 7.x • Проблемы с Hotmail • Направлена жалоба в Майкрософт 24
  • 148. Краткая история браузеров. 2004 год Internet Explorer 6 SP2 • Никаких изменений в движке Opera 7.x • Проблемы с Hotmail • Направлена жалоба в Майкрософт • Но они не ответили 24
  • 150. Краткая история браузеров. 2004 год Firefox 0.8-1.0 25
  • 151. Краткая история браузеров. 2004 год Firefox 0.8-1.0 • Опять переименован из-за аналогичной причины 25
  • 152. Краткая история браузеров. 2004 год Firefox 0.8-1.0 • Опять переименован из-за аналогичной причины • Получил множество положительных оценок 25
  • 153. Краткая история браузеров. 2004 год Firefox 0.8-1.0 • Опять переименован из-за аналогичной причины • Получил множество положительных оценок • 25 млн. загрузок за первые 99 дней 25
  • 154. Краткая история браузеров. 2004 год Firefox 0.8-1.0 • Опять переименован из-за аналогичной причины • Получил множество положительных оценок • 25 млн. загрузок за первые 99 дней • Становится одним из самых популярных свободных приложений 25
  • 157. Краткая история браузеров. 2005 год Opera 8.x • Браузер становится полностью бесплатным и без рекламы 26
  • 158. Краткая история браузеров. 2005 год Opera 8.x • Браузер становится полностью бесплатным и без рекламы Firefox 1.5 26
  • 159. Краткая история браузеров. 2005 год Opera 8.x • Браузер становится полностью бесплатным и без рекламы Firefox 1.5 • Через 344 дня после выпуска первой версии — загружен в 100 миллионный раз 26
  • 160. Краткая история браузеров. 2005 год Opera 8.x • Браузер становится полностью бесплатным и без рекламы Firefox 1.5 • Через 344 дня после выпуска первой версии — загружен в 100 миллионный раз • Рыночная доля около 10% 26
  • 161. Краткая история браузеров. 2005 год Opera 8.x • Браузер становится полностью бесплатным и без рекламы Firefox 1.5 • Через 344 дня после выпуска первой версии — загружен в 100 миллионный раз • Рыночная доля около 10% Safari 2.0 26
  • 162. Краткая история браузеров. 2005 год Opera 8.x • Браузер становится полностью бесплатным и без рекламы Firefox 1.5 • Через 344 дня после выпуска первой версии — загружен в 100 миллионный раз • Рыночная доля около 10% Safari 2.0 • Проходит Acid2 тест 26
  • 163. Краткая история браузеров. 2005 год Opera 8.x • Браузер становится полностью бесплатным и без рекламы Firefox 1.5 • Через 344 дня после выпуска первой версии — загружен в 100 миллионный раз • Рыночная доля около 10% Safari 2.0 • Проходит Acid2 тест • Webkit в OpenSource 26
  • 165. Краткая история браузеров. 2006 год Internet Explorer 7 27
  • 166. Краткая история браузеров. 2006 год Internet Explorer 7 • PNG с альфа-каналом 27
  • 167. Краткая история браузеров. 2006 год Internet Explorer 7 • PNG с альфа-каналом • Какие то улучшения поддержки стандартов 27
  • 168. Краткая история браузеров. 2006 год Internet Explorer 7 • PNG с альфа-каналом • Какие то улучшения поддержки стандартов • Первая версия, в которой не содержался код Mosaic 27
  • 169. Краткая история браузеров. 2006 год Internet Explorer 7 • PNG с альфа-каналом • Какие то улучшения поддержки стандартов • Первая версия, в которой не содержался код Mosaic • Trident 3.1 (раньше без версий) 27
  • 171. Краткая история браузеров. 2007 год Мобильная версия Safari 28
  • 172. Краткая история браузеров. 2007 год Мобильная версия Safari • Стив Джобс представляет iPhone 28
  • 173. Краткая история браузеров. 2007 год Мобильная версия Safari • Стив Джобс представляет iPhone • А вместе с ним и мобильную версию 28
  • 174. Краткая история браузеров. 2007 год Мобильная версия Safari • Стив Джобс представляет iPhone • А вместе с ним и мобильную версию • Основан на обычном Webkit 28
  • 175. Краткая история браузеров. 2007 год Мобильная версия Safari • Стив Джобс представляет iPhone • А вместе с ним и мобильную версию • Основан на обычном Webkit • С изменениями для мобильных устройств 28
  • 178. Краткая история браузеров. 2008 год Opera 9.x • Повышение производительности 29
  • 179. Краткая история браузеров. 2008 год Opera 9.x • Повышение производительности – вдвое быстрее предыдущей версии 29
  • 180. Краткая история браузеров. 2008 год Opera 9.x • Повышение производительности – вдвое быстрее предыдущей версии – на 50% быстрее Firefox 2 29
  • 181. Краткая история браузеров. 2008 год Opera 9.x • Повышение производительности – вдвое быстрее предыдущей версии – на 50% быстрее Firefox 2 – вдвое быстрее Internet Explorer 7 29
  • 182. Краткая история браузеров. 2008 год Opera 9.x • Повышение производительности – вдвое быстрее предыдущей версии – на 50% быстрее Firefox 2 – вдвое быстрее Internet Explorer 7 Firefox 3.0 29
  • 183. Краткая история браузеров. 2008 год Opera 9.x • Повышение производительности – вдвое быстрее предыдущей версии – на 50% быстрее Firefox 2 – вдвое быстрее Internet Explorer 7 Firefox 3.0 • 8 миллионов загрузок в день релиза 29
  • 184. Краткая история браузеров. 2008 год Opera 9.x • Повышение производительности – вдвое быстрее предыдущей версии – на 50% быстрее Firefox 2 – вдвое быстрее Internet Explorer 7 Firefox 3.0 • 8 миллионов загрузок в день релиза • Глобальная доля рынка — 20%, в Европе — 30% 29
  • 187. Краткая история браузеров. 2008 год Chrome 1.0 • Простой интерфейс 30
  • 188. Краткая история браузеров. 2008 год Chrome 1.0 • Простой интерфейс • Высокая скорость работы 30
  • 189. Краткая история браузеров. 2008 год Chrome 1.0 • Простой интерфейс • Высокая скорость работы • Основан на Webkit 30
  • 190. Краткая история браузеров. 2008 год Chrome 1.0 • Простой интерфейс • Высокая скорость работы • Основан на Webkit • V8, вместо JavaScriptCore 30
  • 191. Краткая история браузеров. 2008 год Chrome 1.0 • Простой интерфейс • Высокая скорость работы • Основан на Webkit • V8, вместо JavaScriptCore • Наверное, можно считать, что положил начало 30
  • 192. Краткая история браузеров. 2008 год Chrome 1.0 • Простой интерфейс • Высокая скорость работы • Основан на Webkit • V8, вместо JavaScriptCore • Наверное, можно считать, что положил начало – гонке за скорость 30
  • 193. Краткая история браузеров. 2008 год Chrome 1.0 • Простой интерфейс • Высокая скорость работы • Основан на Webkit • V8, вместо JavaScriptCore • Наверное, можно считать, что положил начало – гонке за скорость – в том числе и для Яваскриптовых движков 30
  • 195. Краткая история браузеров. 2009 год Internet Explorer 8.0 31
  • 196. Краткая история браузеров. 2009 год Internet Explorer 8.0 • Новый режим рендеринга, который называется «режим стандартов» 31
  • 197. Краткая история браузеров. 2009 год Internet Explorer 8.0 • Новый режим рендеринга, который называется «режим стандартов» • Проходит Acid2 31
  • 198. Краткая история браузеров. 2009 год Internet Explorer 8.0 • Новый режим рендеринга, который называется «режим стандартов» • Проходит Acid2 Chrome 2.0-3.0 31
  • 199. Краткая история браузеров. 2009 год Internet Explorer 8.0 • Новый режим рендеринга, который называется «режим стандартов» • Проходит Acid2 Chrome 2.0-3.0 • Существенно увеличена производительность JavaScript 31
  • 200. Краткая история браузеров. 2009 год Internet Explorer 8.0 • Новый режим рендеринга, который называется «режим стандартов» • Проходит Acid2 Chrome 2.0-3.0 • Существенно увеличена производительность JavaScript Firefox 3.5 31
  • 201. Краткая история браузеров. 2009 год Internet Explorer 8.0 • Новый режим рендеринга, который называется «режим стандартов» • Проходит Acid2 Chrome 2.0-3.0 • Существенно увеличена производительность JavaScript Firefox 3.5 • Новая версия SpiderMonkey — TraceMonkey 31
  • 202. Краткая история браузеров. 2009 год Internet Explorer 8.0 • Новый режим рендеринга, который называется «режим стандартов» • Проходит Acid2 Chrome 2.0-3.0 • Существенно увеличена производительность JavaScript Firefox 3.5 • Новая версия SpiderMonkey — TraceMonkey • Существенно увеличена производительность JavaScript 31
  • 203. Краткая история браузеров. 2009 год Internet Explorer 8.0 • Новый режим рендеринга, который называется «режим стандартов» • Проходит Acid2 Chrome 2.0-3.0 • Существенно увеличена производительность JavaScript Firefox 3.5 • Новая версия SpiderMonkey — TraceMonkey • Существенно увеличена производительность JavaScript • Первый JIT компилятор для JavaScript 31
  • 205. Краткая история браузеров. 2010 год Chrome 4.0-8.0 32
  • 206. Краткая история браузеров. 2010 год Chrome 4.0-8.0 • Полное прохождение тестов ACID3 32
  • 207. Краткая история браузеров. 2010 год Chrome 4.0-8.0 • Полное прохождение тестов ACID3 • Улучшена скорость работы JavaScript 32
  • 208. Краткая история браузеров. 2010 год Chrome 4.0-8.0 • Полное прохождение тестов ACID3 • Улучшена скорость работы JavaScript Opera 10.50-11.00 32
  • 209. Краткая история браузеров. 2010 год Chrome 4.0-8.0 • Полное прохождение тестов ACID3 • Улучшена скорость работы JavaScript Opera 10.50-11.00 • Новый JavaScript-движок Carakan 32
  • 210. Краткая история браузеров. 2010 год Chrome 4.0-8.0 • Полное прохождение тестов ACID3 • Улучшена скорость работы JavaScript Opera 10.50-11.00 • Новый JavaScript-движок Carakan Firefox 3.6 32
  • 211. Краткая история браузеров. 2010 год Chrome 4.0-8.0 • Полное прохождение тестов ACID3 • Улучшена скорость работы JavaScript Opera 10.50-11.00 • Новый JavaScript-движок Carakan Firefox 3.6 • Улучшена скорость работы JavaScript 32
  • 213. Краткая история браузеров. 2011 год Firefox 4.0-9.0 33
  • 214. Краткая история браузеров. 2011 год Firefox 4.0-9.0 • Gecko 2.0 и JägerMonkey 33
  • 215. Краткая история браузеров. 2011 год Firefox 4.0-9.0 • Gecko 2.0 и JägerMonkey • Переход на быстрый цикл разработки релизов 33
  • 216. Краткая история браузеров. 2011 год Firefox 4.0-9.0 • Gecko 2.0 и JägerMonkey • Переход на быстрый цикл разработки релизов • Acid3 — 97/100 33
  • 217. Краткая история браузеров. 2011 год Firefox 4.0-9.0 • Gecko 2.0 и JägerMonkey • Переход на быстрый цикл разработки релизов • Acid3 — 97/100 Internet Explorer 9.0 33
  • 218. Краткая история браузеров. 2011 год Firefox 4.0-9.0 • Gecko 2.0 и JägerMonkey • Переход на быстрый цикл разработки релизов • Acid3 — 97/100 Internet Explorer 9.0 • Поддержка большей части CSS3 33
  • 219. Краткая история браузеров. 2011 год Firefox 4.0-9.0 • Gecko 2.0 и JägerMonkey • Переход на быстрый цикл разработки релизов • Acid3 — 97/100 Internet Explorer 9.0 • Поддержка большей части CSS3 • Более быстрая обработка JavaScript 33
  • 220. Краткая история браузеров. 2011 год Firefox 4.0-9.0 • Gecko 2.0 и JägerMonkey • Переход на быстрый цикл разработки релизов • Acid3 — 97/100 Internet Explorer 9.0 • Поддержка большей части CSS3 • Более быстрая обработка JavaScript • Аудио- и видеотеги HTML5 33
  • 222. Краткая история браузеров. 2011 год Chrome 9.0-16.00 34
  • 223. Краткая история браузеров. 2011 год Chrome 9.0-16.00 • Ускорено выполнение JavaScript 34
  • 224. Краткая история браузеров. 2011 год Chrome 9.0-16.00 • Ускорено выполнение JavaScript • Становится вторым по полярности браузером в мире 34
  • 225. Краткая история браузеров. 2011 год Chrome 9.0-16.00 • Ускорено выполнение JavaScript • Становится вторым по полярности браузером в мире – cмещая Firefox на третье место 34
  • 226. Краткая история браузеров. 2011 год Chrome 9.0-16.00 • Ускорено выполнение JavaScript • Становится вторым по полярности браузером в мире – cмещая Firefox на третье место Safari 5.1 34
  • 227. Краткая история браузеров. 2011 год Chrome 9.0-16.00 • Ускорено выполнение JavaScript • Становится вторым по полярности браузером в мире – cмещая Firefox на третье место Safari 5.1 • Переход на Webkit2 34
  • 228. Краткая история браузеров. 2011 год Chrome 9.0-16.00 • Ускорено выполнение JavaScript • Становится вторым по полярности браузером в мире – cмещая Firefox на третье место Safari 5.1 • Переход на Webkit2 – быстрее и надёжнее 34
  • 229. Краткая история браузеров. 2011 год Chrome 9.0-16.00 • Ускорено выполнение JavaScript • Становится вторым по полярности браузером в мире – cмещая Firefox на третье место Safari 5.1 • Переход на Webkit2 – быстрее и надёжнее – обработка web контента производится в изолированных процессах 34
  • 230. Краткая история браузеров. 2011 год Chrome 9.0-16.00 • Ускорено выполнение JavaScript • Становится вторым по полярности браузером в мире – cмещая Firefox на третье место Safari 5.1 • Переход на Webkit2 – быстрее и надёжнее – обработка web контента производится в изолированных процессах – так же как и в Хроме, но реализовано на уровне движка 34
  • 232. Краткая история браузеров. 2012 год Chrome 17.00-21.00 35
  • 233. Краткая история браузеров. 2012 год Chrome 17.00-21.00 • Новый V8 «JavaScript Harmony» 35
  • 234. Краткая история браузеров. 2012 год Chrome 17.00-21.00 • Новый V8 «JavaScript Harmony» • Поддержка протокола SPDY 35
  • 235. Краткая история браузеров. 2012 год Chrome 17.00-21.00 • Новый V8 «JavaScript Harmony» • Поддержка протокола SPDY Firefox 10.00-15.0.1 35
  • 236. Краткая история браузеров. 2012 год Chrome 17.00-21.00 • Новый V8 «JavaScript Harmony» • Поддержка протокола SPDY Firefox 10.00-15.0.1 • Поддержка протокола SPDY 35
  • 237. Краткая история браузеров. 2012 год Chrome 17.00-21.00 • Новый V8 «JavaScript Harmony» • Поддержка протокола SPDY Firefox 10.00-15.0.1 • Поддержка протокола SPDY • Борьба с утечками памяти 35
  • 240. Браузерные войны • Борьба за господство на рынке web-браузеров 37
  • 241. Браузерные войны • Борьба за господство на рынке web-браузеров • Вроде бы ничего страшного 37
  • 242. Браузерные войны • Борьба за господство на рынке web-браузеров • Вроде бы ничего страшного • Если бы не используемые методы — добавление специфических, нестандартных возможностей к браузеру 37
  • 243. Браузерные войны • Борьба за господство на рынке web-браузеров • Вроде бы ничего страшного • Если бы не используемые методы — добавление специфических, нестандартных возможностей к браузеру • В результате — многие сайты «оптимизированы» для конкретного браузера 37
  • 244. Браузерные войны • Борьба за господство на рынке web-браузеров • Вроде бы ничего страшного • Если бы не используемые методы — добавление специфических, нестандартных возможностей к браузеру • В результате — многие сайты «оптимизированы» для конкретного браузера • Но вообще, проявляется по разному 37
  • 245.
  • 248. Первая браузерная война Причины • дерзкий Netscape 39
  • 249. Первая браузерная война Причины • дерзкий Netscape • отказ в продаже Microsoft своих технологий 39
  • 250. Первая браузерная война Причины • дерзкий Netscape • отказ в продаже Microsoft своих технологий • полное отсутствие Microsoft на рынке браузеров 39
  • 251. Первая браузерная война Причины • дерзкий Netscape • отказ в продаже Microsoft своих технологий • полное отсутствие Microsoft на рынке браузеров Факторы 39
  • 252. Первая браузерная война Причины • дерзкий Netscape • отказ в продаже Microsoft своих технологий • полное отсутствие Microsoft на рынке браузеров Факторы • Netscape коммерческая компания, которой необходимо зарабатывать деньги 39
  • 253. Первая браузерная война Причины • дерзкий Netscape • отказ в продаже Microsoft своих технологий • полное отсутствие Microsoft на рынке браузеров Факторы • Netscape коммерческая компания, которой необходимо зарабатывать деньги • У Microsoft монополия на рынке операционных систем 39
  • 254. Первая браузерная война Причины • дерзкий Netscape • отказ в продаже Microsoft своих технологий • полное отсутствие Microsoft на рынке браузеров Факторы • Netscape коммерческая компания, которой необходимо зарабатывать деньги • У Microsoft монополия на рынке операционных систем • Могут позволить раздавать браузер бесплатно 39
  • 255. Первая браузерная война Причины • дерзкий Netscape • отказ в продаже Microsoft своих технологий • полное отсутствие Microsoft на рынке браузеров Факторы • Netscape коммерческая компания, которой необходимо зарабатывать деньги • У Microsoft монополия на рынке операционных систем • Могут позволить раздавать браузер бесплатно • Ну и вообще Internet Explorer лучше 39
  • 258. Первая браузерная война Итоги • AOL покупает Netscape 40
  • 259. Первая браузерная война Итоги • AOL покупает Netscape • Internet Explorer становится доминирующим браузером на рынке 40
  • 260. Первая браузерная война Итоги • AOL покупает Netscape • Internet Explorer становится доминирующим браузером на рынке • Суд: Соединённые штаты против Microsoft 40
  • 261.
  • 262.
  • 263.
  • 265.
  • 267. Основные режимы отображения Quirks Mode (clck.ru/27PuB) 46
  • 268. Основные режимы отображения Quirks Mode (clck.ru/27PuB) Standards Mode 46
  • 269. Основные режимы отображения Quirks Mode (clck.ru/27PuB) Standards Mode Almost Standards Mode (clck.ru/27Q1n) 46
  • 272. Режимы отображения в IE IE7 Standards IE8 Standards 47
  • 273. Режимы отображения в IE IE7 Standards IE8 Standards IE8 Almost Standards 47
  • 274. Режимы отображения в IE IE7 Standards IE8 Standards IE8 Almost Standards IE9 Standards 47
  • 275. Режимы отображения в IE IE7 Standards IE8 Standards IE8 Almost Standards IE9 Standards IE9 Almost Standards 47
  • 276. Режимы отображения в IE IE7 Standards IE8 Standards IE8 Almost Standards IE9 Standards IE9 Almost Standards clck.ru/27QXD 47
  • 278. User Agent — это клиентское приложение, использующее определённый сетевой протокол. Термин обычно используется для приложений, осуществляющих доступ к веб-сайтам, таким как браузеры, поисковые роботы (и другие «пауки»), мобильные телефоны и другие устройства Wikipedia 49
  • 279. The User-Agent request-header field contains information about the user agent originating the request. This is for statistical purposes, the tracing of protocol violations, and automated recognition of user agents for the sake of tailoring responses to avoid particular user agent limitations. User agents SHOULD include this field with requests. RFC 2616, 14.43 50
  • 280. UserAgent Пример HTTP запроса GET / HTTP/1.1 Host: www.yandex.ru Connection: keep-alive Cache-Control: no-cache Pragma: no-cache User-Agent: Mozilla/5.0 (Macintosh; ru-ru; Intel Mac OS X 10_8_0) AppleWebKit/535.22 (KHTML, like Gecko) Chrome/ 19.0.1048.0 Safari/535.22 Accept: text/html Accept-Encoding: gzip,deflate,sdch Accept-Language: en-US,en;q=0.8 Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3 51
  • 281. User-Agent = "User-Agent" ":" 1*( product | comment ) product = token ["/" product-version] product-version = token token = 1*<any CHAR except CTLs or separators> comment = "(" *( ctext | quoted-pair | comment ) ")" RFC 2616 52
  • 282. UserAgent clck.ru/1WYC clck.ru/27hxV 53
  • 283. UA: Mosaic NCSA_Mosaic/2.7b4 (X11;AIX 1) 54
  • 284. UA: Netscape Navigator Mozilla/3.0 (Macintosh; I; PPC) 55
  • 285. UA: Internet Explorer Mozilla/1.22 (compatible; MSIE 2.0; Windows 95) 56
  • 286. UA: Mozilla Mozilla/5.001 (Macintosh; N; PPC; ja) Gecko/25250101 57
  • 287. UA:Firefox Mozilla/5.0 (X11; Linux i686; rv:1.7.5) Gecko/20041108 Firefox/1.0 58
  • 288. UA: Konqueror Mozilla/5.0 (compatible; Konqueror/3.2; FreeBSD) (KHTML, like Gecko) 59
  • 289. UA: Safari Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-us) AppleWebKit/85.7 (KHTML, like Gecko) Safari/85.6 60
  • 290. UA: Chrome Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1 61
  • 292. Кроссбра́узерность — свойство сайта отображаться и работать во всех популярных браузерах идентично. Под идентичностью понимается отсутствие развалов верстки и способность отображать материал с одинаковой степенью читабельности. Wikipedia 63
  • 294. Кроссбраузерность • Много браузеров 64
  • 295. Кроссбраузерность • Много браузеров – их вообще много 64
  • 296. Кроссбраузерность • Много браузеров – их вообще много – да ещё и разных версий 64
  • 297. Кроссбраузерность • Много браузеров – их вообще много – да ещё и разных версий – а ещё с разным уровнем поддежки технологий 64
  • 298. Кроссбраузерность • Много браузеров – их вообще много – да ещё и разных версий – а ещё с разным уровнем поддежки технологий • Требуется дополнительное время, которое стоит денег 64
  • 299. Кроссбраузерность • Много браузеров – их вообще много – да ещё и разных версий – а ещё с разным уровнем поддежки технологий • Требуется дополнительное время, которое стоит денег • Но иначе — посетитель уйдёт 64
  • 300. Кроссбраузерность • Много браузеров – их вообще много – да ещё и разных версий – а ещё с разным уровнем поддежки технологий • Требуется дополнительное время, которое стоит денег • Но иначе — посетитель уйдёт • Ну и вообще это плохо 64
  • 302. Limited browser support • Поддержка ограниченного количества браузеров 65
  • 303. Limited browser support • Поддержка ограниченного количества браузеров • Может проявляться по разному 65
  • 304. Limited browser support • Поддержка ограниченного количества браузеров • Может проявляться по разному – блокировка работы в некоторых браузерах 65
  • 305. Limited browser support • Поддержка ограниченного количества браузеров • Может проявляться по разному – блокировка работы в некоторых браузерах – предупреждение о возможных проблемах 65
  • 306. Limited browser support • Поддержка ограниченного количества браузеров • Может проявляться по разному – блокировка работы в некоторых браузерах – предупреждение о возможных проблемах – просто ограниченная поддержка 65
  • 308. Browser detection Определение браузера по его особенностям: .bang { // some properties } * html .bang { zoom: 1; } 67
  • 310. Graceful degradation • Современные и популярные браузеры получают контент в полном виде 68
  • 311. Graceful degradation • Современные и популярные браузеры получают контент в полном виде • Остальные — в упрощённом 68
  • 312. Graceful degradation • Современные и популярные браузеры получают контент в полном виде • Остальные — в упрощённом 68
  • 313. Graceful degradation • Современные и популярные браузеры получают контент в полном виде • Остальные — в упрощённом 68
  • 314. Graceful degradation • Современные и популярные браузеры получают контент в полном виде • Остальные — в упрощённом 68
  • 316. Progressive enhancement • основной контент доступен во всех браузерах 69
  • 317. Progressive enhancement • основной контент доступен во всех браузерах • основная функциональность доступна во всех браузерах 69
  • 318. Progressive enhancement • основной контент доступен во всех браузерах • основная функциональность доступна во всех браузерах • не используется экстраразметка для эмуляции неподдерживаемых свойств 69
  • 319. Progressive enhancement • основной контент доступен во всех браузерах • основная функциональность доступна во всех браузерах • не используется экстраразметка для эмуляции неподдерживаемых свойств • улучшение внешнего вида достигается за счет дополнительных браузерозависимых стилей 69
  • 320. Progressive enhancement • основной контент доступен во всех браузерах • основная функциональность доступна во всех браузерах • не используется экстраразметка для эмуляции неподдерживаемых свойств • улучшение внешнего вида достигается за счет дополнительных браузерозависимых стилей • улучшение функциональности достигается за счет «ненавязчивых» (unobtrusive) скриптов 69
  • 321. Progressive enhancement • основной контент доступен во всех браузерах • основная функциональность доступна во всех браузерах • не используется экстраразметка для эмуляции неподдерживаемых свойств • улучшение внешнего вида достигается за счет дополнительных браузерозависимых стилей • улучшение функциональности достигается за счет «ненавязчивых» (unobtrusive) скриптов • учитываются возможности браузера пользователя 69
  • 322. Feature detection Проверка поддержки тэга video: if(!!document.createElement('video').canPlayType) { // Insert HTML5 Video } else { // Insert Flash Video } 70
  • 323. Feature detection <!DOCTYPE html> <html class="draganddrop rgba ..."> <head> <title>Bang!</title> <script src="//yandex.st/modernizr/2.6.2/ modernizr.js"></script> ... </head> <body> .. <script> if(!Modernizr.inputtypes.date) { // no native support for <input type="date"> :( // maybe build one yourself with Dojo or jQueryUI } </script> </body> </html> 71
  • 325. Здравый смысл Limited browser support 72
  • 326. Здравый смысл Limited browser support • Список совместимости 72
  • 327. Здравый смысл Limited browser support • Список совместимости • Основывается на доле браузера среди нашей аудитории 72
  • 328. Здравый смысл Limited browser support • Список совместимости • Основывается на доле браузера среди нашей аудитории – > 2% — полная совместимость 72
  • 329. Здравый смысл Limited browser support • Список совместимости • Основывается на доле браузера среди нашей аудитории – > 2% — полная совместимость – < 2% — слабая совместимость 72
  • 330. Здравый смысл Limited browser support • Список совместимости • Основывается на доле браузера среди нашей аудитории – > 2% — полная совместимость – < 2% — слабая совместимость – < 0.5% — не поддерживаем 72
  • 331. Здравый смысл Limited browser support • Список совместимости • Основывается на доле браузера среди нашей аудитории – > 2% — полная совместимость – < 2% — слабая совместимость – < 0.5% — не поддерживаем • Но контент должен быть доступен везде 72
  • 332. Здравый смысл Browser detection: условные комментарии <!--[if gt IE 7]><!--> <link rel="stylesheet" href="//yandex.st/.../style.css"> <!--<![endif]--> <!--[if lt IE 8]> <link rel="stylesheet" href="//yandex.st/.../style.ie.css"> <![endif]--> 73
  • 333. Здравый смысл Browser detection: дополнительные стили для iPad { block: 'b-page', head: [ ... data.isIpad ? { elem: 'css', url: '//yandex.st/.../style.ipad.css' } : '', ], ... } 74
  • 334. Здравый смысл Feature detection: определение JavaScript и режима отображения <!doctype html> <html class="i-ua_js_no i-ua_css_standard"> <head> <script> ;(function(d,e,c,r) { e=d.documentElement; c="className"; r="replace"; e[c]=e[c][r]("i-ua_js_no","i-ua_js_yes"); if(d.compatMode!="CSS1Compat") e[c]=e[c][r]("i-ua_css_standart","i- ua_css_quirks") })(document); </script> <link rel="stylesheet" href="//yandex.st/.../style.css"> <style> .b-huge-js-block { display: none } </style> 75
  • 336. Списки совместимости в IE • Internet Explorer старше седьмой версии 76
  • 337. Списки совместимости в IE • Internet Explorer старше седьмой версии • Приезжают вместе с обновлениями 76
  • 338. Списки совместимости в IE • Internet Explorer старше седьмой версии • Приезжают вместе с обновлениями • Основываются на поведении пользователей 76
  • 339. Списки совместимости в IE • Internet Explorer старше седьмой версии • Приезжают вместе с обновлениями • Основываются на поведении пользователей • support.microsoft.com/kb/960321 76
  • 341. Browser JavaScript в Opera • Не путать с UserJS 77
  • 342. Browser JavaScript в Opera • Не путать с UserJS • Автоматически исправляет 77
  • 343. Browser JavaScript в Opera • Не путать с UserJS • Автоматически исправляет – веб страницы 77
  • 344. Browser JavaScript в Opera • Не путать с UserJS • Автоматически исправляет – веб страницы – устаревшие скрипты 77
  • 345. Browser JavaScript в Opera • Не путать с UserJS • Автоматически исправляет – веб страницы – устаревшие скрипты – страницы которые по неосторожности блокируют Оперу 77
  • 346. Browser JavaScript в Opera • Не путать с UserJS • Автоматически исправляет – веб страницы – устаревшие скрипты – страницы которые по неосторожности блокируют Оперу • Лежит на ГитХабе 77
  • 347. Browser JavaScript в Opera • Не путать с UserJS • Автоматически исправляет – веб страницы – устаревшие скрипты – страницы которые по неосторожности блокируют Оперу • Лежит на ГитХабе – operasoftware/browserjs 77
  • 348. Browser JavaScript в Opera • Не путать с UserJS • Автоматически исправляет – веб страницы – устаревшие скрипты – страницы которые по неосторожности блокируют Оперу • Лежит на ГитХабе – operasoftware/browserjs • www.opera.com/docs/browserjs/ 77
  • 349. Browser JavaScript в Opera Кусок скрипта который чинит Facebook: if(hostname.endsWith('www.facebook.com')){ opera.addEventListener('BeforeCSS', function(e) { e.cssText = e.cssText.replace(/border-(top|bottom)- (right|left)-radius:3px/g, ''); }, false); } 78
  • 350.
  • 353. Заключение • Движков много, а браузеров ещё больше 81
  • 354. Заключение • Движков много, а браузеров ещё больше • Браузеры сложные 81
  • 355. Заключение • Движков много, а браузеров ещё больше • Браузеры сложные • Следует следить за их развитием, чтобы быть в курсе 81
  • 356. Заключение • Движков много, а браузеров ещё больше • Браузеры сложные • Следует следить за их развитием, чтобы быть в курсе • Всё будет хорошо 81
  • 357. Заключение • Движков много, а браузеров ещё больше • Браузеры сложные • Следует следить за их развитием, чтобы быть в курсе • Всё будет хорошо • А может быть и плохо 81
  • 358. Георгий Мостоловица Разработчик интерфейсов gfranco@yandex-team.ru Спасибо