160 likes | 307 Views
Web- технологии. Лекция 5. Browser. Что такое Browser?. ПО для работы с web- сайтами В общем – интерфейс взаимодействия. Движки Браузеров. Webkit (Safari, Chrome) Gecko (Firefox) Trident (IE) Presto (Opera). WebKit. Apple Библиотеки KHTML и KJS
E N D
Web-технологии. Лекция 5. Browser
Что такое Browser? • ПО для работы с web-сайтами • В общем – интерфейс взаимодействия
Движки Браузеров • Webkit (Safari, Chrome) • Gecko (Firefox) • Trident (IE) • Presto (Opera)
WebKit • Apple • Библиотеки KHTML и KJS • Состоит из WebCore (визуализация и Document Object Model), JSCore (фреймворк для обработки сценариев) и Drosera (отладчик ошибок)
KHTML, KJS и DOM • KDE & HTML – компонент для просмотра HTML под KDE • W3C DOM: • Level NULL – все специфические модели DOM, существовавшие до стандартизации (document.images/forms/layers/all) • Level 1 – базовые возможности DOM (HTML и XML) – получать узлы документа, изменять и добавлять данные • Level 2 – поддержка пространства имён XML и событий • Level 3 – 6 спецификаций: Core, Load and Save, Xpath, Views and Formatting, Requirements, Validation (расширения DOM)
Пример кода для валидацииDOM if (document.getElementById && document.getElementsByTagName) { // если методы getElementById и getElementsByTagName // доступны, то можно относительно точно предположить поддержку W3CDOM. obj = document.getElementById("navigation") // далее идёт другой код с использованием возможностей W3CDOM. // ..... }
JS код function domImplementationTest(){ var featureArray = ['HTML', 'XML', 'Core', 'Views', 'StyleSheets', 'CSS', 'CSS2', 'Events', 'UIEvents', 'MouseEvents', 'HTMLEvents', 'MutationEvents', 'Range', 'Traversal']; var versionArray = ['1.0', '2.0', '3.0']; var i; var j; if(document.implementation && document.implementation.hasFeature){ for(i=0; i < featureArray.length; i++){ for(j=0; j < versionArray.length; j++){ document.write( 'Поддержка расширения '+ featureArray[i] + ' версии ' + versionArray[j] + ' : ' + document.implementation.hasFeature(featureArray[i], versionArray[j]) + '<br>' ); } document.write('<br>'); } } }
Gecko • Главная концепция – кросс-платформенность • Поддержка XUL
Компоненты Gecko • Синтаксический анализатор HTML и XML • Движок для вёрстки • Обработчик CSS • Интерпретатор JS • GL • NetL • Набор lib для визуализации графики • Plug-in API • Open Java Interface • Библиотека отображения шрифтов • Библиотека средств защиты
Trident • COM-модель • Косячит со стандартами (Tasman-версия – нет)
Presto • Работа с JS (свои движки Carakan, Futhark и т.п.) • Поддержка HTML5, CSS3, геолокация вшита в ядро
Тест Acid • Тест поддержки браузером Web-стандартов (каждую версию – новые) • Группы тестов: • DOM Traversal, DOM Range, HTTP • DOM Core, Events • DOM Views, Style, CSS 3, Media Queries • Поведение HTML таблиц и форм при управлении из скрипта, DOM HTML • Свои Acid3 тесты • ECMA Script (JS – его расширение)
Табличке (протоколы и технологии)
Быстродействие • Результаты тестирования в Sunspider (меньший результат – лучший): • Firefox 3.1 - 1942.5ms • IE8 - 6947.0ms • Chrome - 1980.0ms • Объем занимаемой приложением памяти:Использование RAM (десять страниц): • Firefox 3.1 – 91 Мбайт • IE8 – 230 Мбайт • Chrome – 141 Мбайт • Использование RAM (одна страница): • Firefox 3.1 – 50 Мбайт • IE8 – 59 Мбайт • Chrome – 22 Мбайт • Время запуска: • Firefox – 37с • Chrome – 15с • IE8 - n/a • Время загрузки страницы: • Firefox – 8с • Chrome – 11с • IE8 - n/а