IE8: найбільш повний опис нововведень для програміста (і не тільки)

Введення

Браузер Internet Explorer має довгу історію, що почалася в 1995 році, коли в серпні цього року компанія Мікрософт випустила його, ліцензований у Spyglass, Inc. З тих пір пройшло вже більше 10 років і Internet Explorer встиг підкорити світ, завоювавши абсолютна більшість користувачів, а версія його ось-ось зміниться на номер 8.

Незважаючи на широке поширення, Internet Explorer користується поганою славою у розробників web-проектів. Виною тому безліч факторів, основними з яких, на мій погляд, є мляве впровадження стандартів консорціуму W3C і дуже повільний перехід на нові версії серед користувачів. Через те, що величезна кількість користувачів все ще використовує застарілі браузери, web-розробникам доводиться підтримувати і їх, впроваджуючи у свої коди усілякі трюки і так звані хакі, щоб один і той же сайт виглядав однаково як в браузерах Firefox, Safari і Opera, так і у всіх поширених версіях Internet Explorer.

Однак, з випуском восьмої версії браузера, Мікрософт, схоже, робить спроби згладити ставлення розробників до свого дітища, пропонуючи їм довгоочікувану підтримку стандартів, не залишаючи в той же час підтримку попереднього коду, написаного під старі версії.
Ця стаття покликана показати, що ж нового з'явиться в Internet Explorer 8 для розробників, що зміниться і як використовувати деякі нові та корисні речі які пропонує нам цей браузер.


Історія браузера Internet Explorer для програміста


Вийшовши в 1995 році перша версія IE не отримала широкого розповсюдження, як втім і версія друга, яка включала в себе підтримку крім SSL, cookies, такі речі як VRML і RSA. Третьою версією, яка вийшла в 1996 році, вдалося домогтися більшого. Вона отримала підтримку CSS, ActiveX, фреймів і Java-аплетів. У четвертій версії з'явилися DHTML і PNG. П'ята версія принесла підтримку XML / XSLT, поліпшену підтримку CSS версії 1 і 2, favicon, HTML Application. Особливо корисним виявиться введення XMLHttpRequest, який набагато пізніше дасть старт повсюдно використовуваної технології AJAX. Шоста версія виявилася менш щедрою на нововведення: покращена підтримка DHTML, часткова підтримка CSS level 1, DOM level 1 і SMIL 2.0. Разом з тим, шоста версія, схоже, стала найбільш вразливою в плані безпеки версією браузера. У сьомій версії Internet Explorer додалася підтримка IDN, незначно була покращена підтримка CSS, DOM і HTML, покращилася підтримка компресії сторінок через Gzip і deflate. Однак однією з головних виправлень стала довгоочікувана підтримка прозорості для PNG-файлів.


Восьма версія


Перша публічна бета-версія Internet Explorer 8 з'явилася в березні 2008 року. Повідомлялося, що нова версія отримає переписаний з нуля движок рендеринга, що команда розробників націлена на підтримку стандартів, таких як CSS 2.1, CSS 3 і HTML 5, що будуть виправлені безліч помилок попередніх версій. І очікування справдилися, нова версія містила в собі численні зміни в HTML і CSS, такі як введення тега abbr, підтримка автоматично генерується контенту CSS, правила CSS display: table, paged media, DOM Storage, XDM, API селектров і багато іншого. Крім того, з'явилася підтримка Data: URI і XDomainRequest для крос-доменного обміну, додалися нові функції в DOM, заявлена підтримка специфікації ARIA.
Після знайомства з новою версією і її нововведеннями, складається думка, що компанія Мікрософт, нарешті звернула свою увагу на web-розробників і взялася грунтовно переробити свій браузер до краще.


Механіка восьмий версії. Прикидається сьомою версією


Нова версія рендеринга Internet Explorer може працювати в трьох режимах:
Команда розробників передбачила примусову підтримку того чи іншого режиму для ваших старих або нових сторінок, які націлені на відображення в попередніх версіях браузера і повинні нормально відображатися в 8 версії.
Для того щоб задати необхідний вам режим потрібно додати на сторінку meta-тег наступного вмісту:
<meta http-equiv=”X-UA-Compatible” content=”IE=8″ />

Тут, content – позначає режим, в якому буде відображатися сторінка. Основні значення content наступні:
Крім того, значення content не обмежуються перерахованими режимами. Так можна вказати значення для будь-яких інших браузерів:
<meta http-equiv=”X-UA-Compatible” content=”FF=3″ />

Додатково до цього, у параметра content існує значення "edge", яке дозволяє вказувати на підтримку максимально старшої версії браузера:
<meta http-equiv=”X-UA-Compatible” content=”IE=edge” />

Крім вказівки тега "meta" є ще один спосіб керувати режимом браузера – це передача http-заголовка:

X-UA-Compatible: IE=EmulateIE7


Механізми забезпечення безпеки


Захист пам'яті засобами DEP / NX


Функція "Увімкнути захист пам'яті для зниження ризику атаки з інтернету" доступна і в сьомій версії браузера, але вона не включена за замовчуванням. Щоправда, на 64-бітових платформах цієї функції немає, але тільки тому, що всі процеси в 64-бітових версіях Windows захищені через DEP. Тепер же, дана функція буде включена за замовчуванням. Нагадаю, що DEP / NX дозволяє запобігти виконання коду, який відмічено як дані. Таким чином, відсікається цілий пласт атак, таких як переповнення буферу.


Покращення в ActiveX


У восьмій версії Internet Explorer елементи ActiveX можуть бути встановлені тільки для певного користувача (Per-User ActiveX), що знижує ризик зараження, при врахуванні того, що користувач не працює під правами адміністратора. У цьому випадку під ударом знаходиться тільки профіль одного користувача і нічого більше.
Per-Site ActiveX – нова техніка, яка дозволяє задати елементу ActiveX можливість виконання тільки на одному єдиному (вашому власному) сайті і ніде більше. Користувач також може дозволити використання, скажімо Silverlight, тільки на тому сервері, де він перший раз знадобився. Як і все інше, управління механізмом установки ActiveX буде доступно для адміністраторів через групові політики.


XSS-фільтр


Найцікавіше, на мій погляд, нововведення – це вбудований XSS-фільтр, який дозволяє захистити користувача від "Cross-Site Scripting"-атак. Щоб хоча б приблизно оцінити величину загрози від XSS-атак можна перейти за адресою XSSed.com, і подивитися, які, не самі дрібні публічні ресурси, схильні до цих атак. Будь-який користувач потенційно може виявитися жертвою, просто перейшовши на ці ресурси, і зараз кількість таких виявлених "дірявих" сайтів перевалила вже за 20 тисяч.

XSS-фільтр Internet Explorer 8 спрямований проти xss-атак т.зв. типу Type1. Згідно з інформацією з Wikipedia атаки такого типу найпоширеніші.

Для тих сайтів, які з якоїсь причини не хочуть дозволити користувачеві включити захист проти XSS на їх ресурсах доступна опція в заголовках HTTP:

X-XSS-Protection: 0

Вона може знадобитися тим, хто у своїх проектах використовував техніки схожі з XSS-атак.


Інші зміни безпеки



Зміни стосуються CSS


CCS-вирази


Одним із принципових рішень команди розробників Internet Explorer в плані підтримки CSS є відмова від так званих CCS-виразів (CSS expressions). Ці висловлювання дозволяли інтегрувати в CSS-код JavaScript-вирази для маніпулювання вмістом css параметрів. CSS-вирази у восьмій версії Internet Explorer буде відключені за умовчанням. У числі причин названі безпека і висока затратність в плані продуктивності. Однак підтримка CSS-виразів збережеться в режимах сумісності Strict і Quirks, для підтримки вже написаного коду.


Зміна в іменуванні властивостей


Микрософт змінила порядок іменування деяких властивостей CSS. Тепер всі "нестандартні властивості" отримують префікс "-ms-". Для того, щоб повністю відповідати CSS 2.1 в IE 8 такий префікс отримали властивості підходять під наступні умови:

Ось список властивостей, які отримали приставку "-ms-" (із зазначенням причини):

















































































































































Property  Type  W3C Status 
-ms-accelerator  Extension  
-ms-background-position-x  CSS3 Working Draft
-ms-background-position-y  CSS3 Working Draft
-ms-behavior  Extension  
-ms-block-progression  CSS3 Editor”s Draft
-ms-filter  Extension  
-ms-ime-mode  Extension  
-ms-layout-grid  CSS3 Editor”s Draft
-ms-layout-grid-char  CSS3 Editor”s Draft
-ms-layout-grid-line  CSS3 Editor”s Draft
-ms-layout-grid-mode  CSS3 Editor”s Draft
-ms-layout-grid-type  CSS3 Editor”s Draft
-ms-line-break  CSS3 Working Draft
-ms-line-grid-mode  CSS3 Editor”s Draft
-ms-interpolation-mode  Extension  
-ms-overflow-x  CSS3 Working Draft
-ms-overflow-y  CSS3 Working Draft
-ms-scrollbar-3dlight-color  Extension  
-ms-scrollbar-arrow-color  Extension  
-ms-scrollbar-base-color  Extension  
-ms-scrollbar-darkshadow-color  Extension  
-ms-scrollbar-face-color  Extension  
-ms-scrollbar-highlight-color  Extension  
-ms-scrollbar-shadow-color  Extension  
-ms-scrollbar-track-color  Extension  
-ms-text-align-last  CSS3 Working Draft
-ms-text-autospace  CSS3 Working Draft
-ms-text-justify  CSS3 Working Draft
-ms-text-kashida-space  CSS3 Working Draft
-ms-text-overflow  CSS3 Working Draft
-ms-text-underline-position  Extension  
-ms-word-break  CSS3 Working Draft
-ms-word-wrap  CSS3 Working Draft
-ms-writing-mode  CSS3 Editor”s Draft
-ms-zoom  Extension  

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


Властивість filter


Зміни торкнулися такої властивості, як filter. Раніше, на жаль, синтаксис filter не відповідав CSS 2.1. Наприклад, у зазначеному коді коми вважалися неприпустимими.
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80, FinishOpacity=70, Style=2);

У новій версії браузера синтаксис filter приведений до відповідності вимогам специфікації CSS:
-ms-filter: “progid:DXImageTransform.Microsoft.Alpha(Opacity=80, FinishOpacity=70, Style=2)”;

неважко помітити, що в новому синтаксисі значення властивості взято в лапки.


Підтримка CSS 2.1


Для більш повної реалізації CSS 2.1 додана підтримка наступних псевдо-класів:

Останні три не доступні в beta2, але будуть додані у фінальну версію. Крім того додана підтримка наступних псевдо-елементів:

Наступні елементи будуть підтримуватися в повному обсязі замість часткової підтримки або додадуться:

Функції CSS


Крім існуючої підтримки функції url (), у восьмій версії буде додана підтримка ще двох функцій counter () і attr ().


JavaScript і AJAX в IE8


На допомогу програмістам команда розробників Internet Explorer внесла значні зміни і нововведення в механізм JavaScript.


XDomainRequest (XDR)


XDR – це новий об'єкт схожий на XMLHttpRequest, але який призначений для обміну інформацією через домени. Синтаксис XDR відповідає чернетки W3C "Access Control for Cross-Site Requests".


Cross-document Messaging (XDM)


XDM – це ще одна технологія, яка дозволяє обмінюватися текстовими повідомленнями фреймах з різних доменів, які розміщені на одній сторінці. Такий обмін відбувається через HTML5-метод postMessage:
var testframe = document.getElementsByTagName(“iframe”)[0];
testframe.contentWindow.postMessage ("Привіт!");

Для того, щоб отримати таке повідомлення документ у фреймі повинен зареєструвати обробник повідомлення "onmessage":
document.attachEvent(“onmessage”,function(e) {

});


DOM Storage


DOM Storage – це механізм, який дозволяє зберігати на стороні клієнта дані не вдаючись при цьому до механізму cookie. На відміну від cookie, DOM storage позбавлені цілого ряду обмежень: розмір зберігаються даних значно збільшений, дані DOM storage не надсилається на сервер при кожному запиті, крім того можна керувати тим, як збережена в DOM storage інформація буде видно в інших вікнах.
В Internet Explorer реалізовано три об'єкти по роботі з DOM storage:

Нижче наведено невеликий приклад того, як можна працювати з DOM storage:
localStorage.setItem(“name”,”Владимир”);

var name = localStorage.getItem(“name”);

XMLHttpRequest


XMLHttpRequest отримав нову властивість timeout, позволяеющее задавати кількість мілісекунд, яке хост буде чекати відповіді, після закінчення яких відбудеться подія ontimeout:
var xhr = new XMLHttpRequest();
xhr.timeout = 10000;
xhr.ontimeout = onTimeout;

function onTimeout ()
{
  alert(“timeout!”);
}

Нові функції


У JavaScript Internet Explorer 8 також було додано кілька функцій:


Інструмент Developer Tools. Profiler JavaScript.


У восьмій версії Internet Explorer до радості програмістів доданий інструмент, який здатен поборотися з широко поширеним доповненням Firebug для браузера Firefox.

Панель містить наступні інструменти і функції:


Крім того, ця панель містить чудовий функціонал – профайлер JavaScript коду:

Цей інструмент дозволяє легко відстежити вузькі місця у вашому JavaScript-коді і тим самим підвищити продуктивність сайту і швидкість завантаження сторінок.


Висновок


У цій статті я спробував розглянути нові можливості Internet Explorer, які він надає програмістові. Як виявилося, нова версія браузера несе в собі масу змін, поліпшень, виправлень і додавань розробників web-проектів. На момент написання статті останньою версією Internet Explorer 8 залишалася beta2, але вже по ній помітно, що компанія Мікрософт приділила своєму браузеру саме пильну увагу і значно вдосконалила його. Для розробників важливо бути в курсі тенденцій у web. Розробка нової версії популярного браузера – це одна з таких тенденцій. Сподіваюся, що наведений матеріал допоміг розробникам поповнити свої знання і бути в курсі деяких нових можливостей, які запропонує фінальна версія Internet Explorer 8.

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


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

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

Ваш отзыв

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

*

*