Перший погляд на IE9 для розробників

Не минуло й місяця з моменту релізу Windows 7, Але ми вирішили продемонструвати вам деякі напрацювання в Internet Explorer 9.

На конференції PDC на додаток до демонстрації прогресу, якого нам вдалося домогтися в області продуктивності та сумісності, ми показали, як IE і Windows дозволяють веб-розробникам задіяти всю потужність комп'ютера. Зокрема, ми продемонстрували апаратне прискорення візуалізації всієї графіки і тексту на веб-сторінках – те, що на сьогоднішній день не вміє ні один з існуючих браузерів. Веб-майстри побачать приріст в продуктивності і ряд інших переваг без необхідності переписувати свої сайти.

Прогрес в продуктивності. Продуктивність браузера увазі використання безлічі різних підсистем браузера. Різні сайти і різні види діяльності в межах одного сайту надають різне навантаження і накладають на браузер різні вимоги.

Так, наприклад, два новинних сайту можуть виглядати схожими для користувача, але мати дуже різні характеристики швидкості. Все залежить від того, яким чином створювався сайт: один сайт може витрачати більшу частину свого часу на движок Javascript і DOM, а інший може – на розмітку і візуалізацію. Сайт, який за своїми властивостями ближче до додатка, ніж сторінці (наприклад, веб-пошта або ж веб-додатки Office) в залежності від дій користувача може навантажувати підсистеми браузера абсолютно різними способами.

На наведеній нижче діаграмі показано, на що витрачається час у підсистемах IE при завантаженні різних сайтів. Можна бачити, що один новинний сайт витрачає більшу частину свого часу на виконання сценаріїв і компонування, другий витрачає основну частину часу на сценарії і візуалізацію, а веб-додаток Excel витрачає на роботу зі сценаріями дуже мало часу.


Зверніть увагу, що діаграма показує загальну кількість часу, витрачений кожної підсистемою, у відсотках, а не відносну різницю між сайтами. Діаграма відображає витрата часу основних підсистем і не показує витрату додаткових систем (наприклад, анти-фишинговой) або іншого ПЗ, що виконується в процесі IE (Панелі або такі доповнення, як Adobe Flash). Також не враховуються мережеві характеристики, оскільки вони залежать від пропускної здатності мережі у кожного користувача. Зверніть увагу, що профіль сайту може значно змінюватися в різних сценаріях: наприклад, профіль веб-додатки Excel для завантаження файлу істотно відрізняється від профілю вибору фрагмента таблиці.

Механізм виконання сценаріїв є лише однією з багатьох підсистем браузера. Існує маса тестових інструментів для оцінки продуктивності виконання сценаріїв. Одним з прикладом таких тестових інструментів є пакет від компанії Apple – тест SunSpider. Нижченаведена діаграма показує відносну продуктивність різних браузерів на одному і тому ж комп'ютері із запущеним тестом SunSpider:


На додаток до IE7 і поточним "фінальним" версіями основних браузерів ми включили останні передрелізні версії цих браузерів, які знаходяться в розробці. Пройшов лише місяць з того моменту, як IE8 вийшов у складі Windows 7, а та версія IE, що знаходиться в розробці, більше не є секретом.

Важливо зазначити, що оскільки різниця невелика, інші підсистеми, які роблять внесок у загальну продуктивність, набувають особливого значення, тому оцінка відмінностей на реально існуючих сайтах може бути вкрай скрутною. Тим не менш, ми будемо працювати над поліпшенням продуктивності виконання сценаріїв.

Ми оцінюємо характеристики продуктивності всіх підсистем браузера по мірі їх використання реально існуючими сайтами. Нашою метою є забезпечення оптимальної роботи не тільки в тестових пакетах, а на реально існуючих сайтах.

Прогрес в сумісності. Наша мета полягає в забезпеченні багатих можливостей – тих, що хочуть використовувати розробники – шляхом сумісності. Розробники хочуть більше можливостей в браузері, щоб створювати візуально насичені програми та інтерфейси; вони хочуть, щоб все це було сумісно і не було необхідності переписувати і повторно тестувати свої сайти. Процес стандартизації є хорошим засобом для досягнення цієї мети.

Як інженери, коли ми хочемо оцінити досягнутий прогрес, ми розробляємо набір тестів, які допомагають визначити широту і глибину функціональності. У IE8 ми реалізували підтримку високо інтероперабельні специфікації CSS 2.1 і подали в організаційний комітет W3C більше 7200 додаткових тестів. Стандарти, які не включають перевірочних тестів, набагато важче реалізовувати, тому розробникам сайтів складніше на них спиратися.

Деякі тести на відповідність стандартам, як, наприклад, Acid3, стали широко використовуватися в якості швидкого способу визначення відповідності стандартам, хоча і з деякими недоліками. Acid3 тестує близько 100 аспектів різних технологій (багато з яких як і раніше знаходяться у фазі чернеток) і включає масу крайніх випадків. Ось результати останньої збірки IE9 в Acid3:


В міру поліпшення підтримки в IE технологій, якими активно користуються веб-майстри, оцінка буде збільшуватися. Більш значущим (з точки зору веб-розробників) прикладом підтримки стандартів є питання підтримку закруглених кутів. Ось, як IE9 відмалювати рамку з закругленими кутами:


Іншим прикладом підтримки стандартів, які мають значення для веб-розробників, є CSS3-селектори. Ось тестова сторінка, яку зібрали і розмістили на css3.info деякі ентузіасти зі спільноти веб-розробників. Це відмінна ілюстрація більш ретельного процесу тестування, яка, до всього іншого, показує прогрес, якого нам вдалося досягти з моменту релізу IE8:


Подібні зусилля спільноти можуть бути дуже корисними. Ми хочемо працювати з громадами та W3C та іншими членами робочих груп для визначення вірного набору тестів, як у випадку з CSS2.1 – за стандартами, які мають значення для розробників. Наприклад, це посилання тестує один з багатьох Storage API для HTML5. Деякі браузери (у тому числі IE8) Мають його підтримку вже сьогодні, у той час, як інші не мають.

Робота, яку ми тут займаємося – над продуктом і наборами тестів, – є засобом для досягнення мети: насичена і сумісна платформа, на яку розробники можуть покластися.

Використання апаратних можливостей комп'ютера і Windows веб-розробниками в браузері. Платформа ПК і екосистема Windows забезпечують безперервний потік інновацій в апаратному забезпеченні. Браузер повинен стати тим місцем, де переваги цих інновацій засяють по-новому для веб-розробників.

У IE9 ми маємо намір використовувати сімейство DirectX з Windows API з метою забезпечити більше можливостей веб-розробникам. Відправною точкою є переміщення всіх розрахунків графіки і тексту з центрального процесора на графічні карти за допомогою інтерфейсів Direct2D і DirectWrite. Апаратне прискорення в даному випадку означає, що графічно насичені сайти будуть завантажуватися швидше, при цьому витрачати ресурси центрального процесора будуть менше (в цьому інтерв'ю є кілька знімаючи з прикладами). Тепер веб-розробники зможуть скористатися досягненнями апаратної графічної екосистеми, продовжуючи користуватися все тими ж стандартами, до яких вони звикли.

На додаток до збільшення продуктивності ця технологія також збільшує якість шрифтів і читаність за рахунок субпиксельной позиціонування:


96 розмір шрифту Gabriola на Lenovo X61 ThinkPad при 100% розмірі з використанням GDI (мають місце зазублини):

 

96 розмір шрифту Gabriola на Lenovo X61 ThinkPad при 100% розмірі з використанням Direct2D (щербин немає):


Минулого тижня на Channel 9 з'явилися інтерв'ю з декількома інженерами команди IE. Самі інтерв'ю можна відшукати тут:

Хоча ми знаходиться на ранній стадії життєвого циклу продукту, ми хочемо бути відкритими для розробників з точки зору нашого підходу до розробки та виконаних робіт. У своїй роботі ми активно використовуємо зворотний зв'язок, отриману при використанні IE8, і продовжуємо свою роботу над наступною версією IE.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*