О насБлогКонтакты
Веб-разработка20 октября 2006 г. 3 мин 101Обновлено: 22 июня 2026 г.

jQuery 1.0: JavaScript без боли (2006)

AunimedaAunimeda
📋 Содержание

До jQuery JavaScript в Казнете был болью. Каждая фича требовала написания browser-detection кода: разные API для IE 6 (70%+ рынка), Firefox, Opera. attachEvent vs addEventListener. document.all vs document.getElementById. currentStyle vs getComputedStyle. IE имел сотни нестандартных поведений.

26 августа 2006 Джон Резиг показал jQuery 1.0 на BarCamp NYC. 19 КБ. «Write less, do more».

Казахстанские разработчики, работавшие под IE 6 как основным браузером, начали использовать jQuery немедленно. Он решал именно ту проблему, которая занимала половину рабочего времени.


Кросс-браузерная боль до jQuery

// БЕЗ jQuery - реальный код 2005 года для казахстанских сайтов

// Добавить обработчик события (IE 6 vs остальные):
function addEvent(el, type, fn) {
    if (el.addEventListener) {
        el.addEventListener(type, fn, false);  // Firefox, Opera, Safari
    } else if (el.attachEvent) {
        el.attachEvent('on' + type, fn);        // IE 5, IE 6
    } else {
        el['on' + type] = fn;                  // Совсем старые
    }
}

// Получить стиль элемента:
function getStyle(el, prop) {
    if (el.currentStyle) {
        return el.currentStyle[prop];              // IE
    } else if (window.getComputedStyle) {
        return getComputedStyle(el, null)[prop];   // W3C
    }
}

// Предотвратить действие по умолчанию:
function preventDefault(e) {
    if (e.preventDefault) {
        e.preventDefault();   // W3C
    } else {
        e.returnValue = false; // IE
    }
}

// С jQuery 1.0 - одна строка, работает везде:
$('#menu a').click(function(e) {
    e.preventDefault();  // jQuery нормализовал объект события
    $(this).addClass('active');
});

Селекторы: CSS как язык запросов

// В 2006 году document.querySelector() не существовал.
// jQuery реализовал CSS-селекторы в JavaScript - включая IE 6.

// Все нечётные строки таблицы:
$('table.catalog tr:odd').css('background', '#f0f0f0');

// Форма: обязательные пустые поля:
$('input[required]').filter(function() {
    return $(this).val() === '';
}).addClass('error').closest('label').css('color', 'red');

// Аккордеон - казахстанские разработчики делали его для FAQ:
$('.faq-question').click(function() {
    $(this).next('.faq-answer').slideToggle(250);
    $(this).toggleClass('open');
});

// Всё это работало в IE 6.
// Внутри jQuery - самописный CSS-парсер, Sizzle.
// Опенсорсен отдельно в 2009.

Ajax в jQuery: что изменилось

// ДО jQuery: Ajax-запрос = 15 строк шаблонного кода (см. 2005)

// С jQuery 1.0:
$.ajax({
    url: '/catalog/search.php',
    type: 'GET',
    data: { q: $('#search').val(), cat: currentCategory },
    dataType: 'html',
    beforeSend: function() {
        $('#results').html('<p>Поиск...</p>');
    },
    success: function(html) {
        $('#results').html(html);
    },
    error: function() {
        $('#results').html('<p>Ошибка. Попробуйте позже.</p>');
    }
});

// Или ещё короче для простых случаев:
$('#sidebar').load('/sidebar-content.php?lang=ru');

// JSON (PHP 5.2+ возвращает json_encode):
$.getJSON('/api/cities.php', function(data) {
    $.each(data, function(i, city) {
        $('#city-select').append(
            $('<option>').val(city.id).text(city.name)
        );
    });
});

Анимации: то, чего хотел каждый клиент

// Казахстанские клиенты в 2006-2007 хотели "живой" сайт.
// jQuery делал это тривиальным.

// Появление уведомления:
function showNotification(text, type) {
    var note = $('<div class="notification ' + type + '">' + text + '</div>');
    $('body').append(note);
    note.fadeIn(200).delay(3000).fadeOut(500, function() {
        $(this).remove();
    });
}

// Плавный скролл к разделу:
$('a[href^="#"]').click(function(e) {
    e.preventDefault();
    var target = $($(this).attr('href'));
    if (target.length) {
        $('html,body').animate({
            scrollTop: target.offset().top - 80
        }, 600);
    }
});

// Аккордеон для меню услуг:
$('.services-menu > li').click(function() {
    $(this).siblings().find('.submenu').slideUp(200);
    $(this).find('.submenu').slideToggle(200);
});

jQuery в Казнете: 2006-2010

jQuery распространился в Казнете быстро. К 2008 году он был на большинстве новых казахстанских сайтов. Причина: он решал реальную проблему - поддержку IE 6, который оставался доминирующим браузером в Казахстане дольше, чем на Западе.

Корпоративные пользователи в Казахстане обновлялись с IE 6 медленно. jQuery позволял писать код один раз и забыть о browser-detection. Это было ценнее чем просто синтаксический сахар.

К 2012 году jQuery был на более чем 50% сайтов мира. В Казнете - ещё выше. Он изменил стандарт: JavaScript перестал быть болью и стал инструментом.

Читайте также

Node.js vs Bun vs Deno 2026: бенчмарки и выбор runtime для продакшнaunimeda
Веб-разработка

Node.js vs Bun vs Deno 2026: бенчмарки и выбор runtime для продакшн

Bun 1.x стабилен в production. Deno 2.0 поддерживает npm-пакеты. Node.js 22 запускает TypeScript нативно. Реальные бенчмарки производительности, сравнение инструментов и конкретные рекомендации для казахстанских разработчиков.

Node.js: JavaScript вышел на сервер (2009)aunimeda
Веб-разработка

Node.js: JavaScript вышел на сервер (2009)

8 ноября 2009 года Райан Даль представил Node.js на JSConf EU. Веб-сервер в 10 строк, 10 000 одновременных соединений без потоков. V8 на сервере. Для казахстанских разработчиков, работавших с PHP+Apache, это был совершенно другой способ думать о сервере.

Google Chrome и V8: JavaScript ускорился в 10 раз (2008)aunimeda
Веб-разработка

Google Chrome и V8: JavaScript ускорился в 10 раз (2008)

2 сентября 2008 года Google выпустил Chrome с движком V8. SunSpider показал 10x ускорение JavaScript по сравнению с Firefox 3. Для казахстанских разработчиков это означало: сложные клиентские приложения стали возможными. Началась гонка браузеров.

Нужна IT-разработка для вашего бизнеса?

Разрабатываем сайты, мобильные приложения и AI-решения для бизнеса в Казахстане. Бесплатная консультация.

Разработка сайтов

Получить консультацию Все статьи