До недоліків мови HTML слід віднести те, що створені з його допомогою
Web сторінки є статичними. Всі зміни, що відбуваються на екрані,
здійснює браузер, завантаження, наприклад, нову Web-сторінку. Щоб зробити
зображення Web сторінки живим і динамічним, треба дати можливість користувачу
безпосередньо взаємодіяти з її вмістом. Для цього необхідно до мови розмітки
HTML і каскадним листами стилів CSS додати такі програмні засоби, які
ппозволили на стороні клієнта без участі сервера вирішити цю задачу.
У 1995 році фірмою Sun був розроблений мова Java,
підтримує крос-платформний програми. Це стало можливим за рахунок
того, що програми компілюються в якийсь проміжний код, званий
байт-кодом Java і виконуються на комп'ютерах клієнтів за допомогою віртуальної
машини, що розуміє байт-індекс (по суті інтерпретатора байт-коду).
Невеликі програми Java, призначені
для вбудовування в HTML-документ, стали називатися десклетами (applets). Вони
дозволили створювати по-справжньому динамічні Web-сторінок. Проте їх недоліком
є те, що будь-яка зміна в програмі (наприклад, в результаті помилки),
птребует компіляції вихідного коду.
через Рік співробітником фірми Netscape Communications
Бренданом Эйхом (Brendan Eich [aik]) був розроблений на базі Java мова
JavaScript (спочатку називався LiveScript), який був
интерпретируемым мовою (скриптом) і, отже, не мав цього недоліку.
Першим браузером, який підтримував JavaScript, став браузер Netscape
Navigator версії 2.0 (березень 1996 р.).
Незабаром переваги розробки Web-сторінок з
використанням JavaScript усвідомили і інші фірми, в першу чергу фірма Microsoft,
яка розробила для свого браузера Microsoft Internet Explorer 3.0
(серпень 1996 р.) версію мови JavaScript (JScript), яка, на жаль, не
пполностью збігалася з версією фірми Netscape.
З метою уніфікації версій мови JavaScript в 1997
році організацією ECMA (European Computer Manufacturers Association) було випущено
стандарт на мова JavaScript, який називався ECMAScript (його специфікацію можна
знайти за адресою: http://www.esma1/STAND/ESMA-262.HTM). Хоча після цього
розбіжності у версіях JavaScript і були зменшені, але не подолані повністю.