Cash — это легковесная альтернатива jQuery, предоставляющая упрощённый синтаксис для работы с DOM, событиями и AJAX. Она сохраняет знакомые методы для выборки элементов, манипуляции с ними и работы с событиями, при этом существенно сокращает размер кода. Cash ориентирована на современные браузеры и использует нативные методы DOM, что обеспечивает высокую производительность.
Важнейшая особенность Cash — цепочка методов. Почти все методы возвращают объект Cash, что позволяет строить цепочки вызовов:
$('.item').addClass('active').css('color', 'red').fadeIn(300);
Выборка элементов осуществляется через функцию $,
аналогично jQuery. Поддерживаются CSS-селекторы:
const items = $('.list-item');
const firstItem = $('#first');
Методы для работы с классами:
.addClass(className) — добавляет класс.removeClass(className) — удаляет класс.toggleClass(className) — переключает класс.hasClass(className) — проверяет наличие классаМетоды для работы со стилями:
.css(property, value) — устанавливает стиль.css(property) — получает значение стиляCash предоставляет удобные методы для атрибутов и контента элементов:
.attr(name, value) — установить атрибут.attr(name) — получить атрибут.removeAttr(name) — удалить атрибут.prop(name, value) — установить свойство DOM.prop(name) — получить свойствоМетоды для работы с содержимым:
.html() / .html(content) —
получить/установить HTML.text() / .text(content) —
получить/установить текст.val() / .val(value) — получить/установить
значение формыCash позволяет легко добавлять обработчики событий с поддержкой делегирования:
$('.button').on('click', function(event) {
console.log('Нажата кнопка', event.target);
});
Методы для событий:
.on(event, selector, handler) — добавить
обработчик.off(event, handler) — удалить обработчик.trigger(event) — программно вызвать событиеПоддерживаются все стандартные DOM-события, а делегирование упрощает работу с динамически добавляемыми элементами.
Cash включает базовые методы анимации и переходов, оптимизированные для производительности:
.fadeIn(duration, callback) — плавное появление.fadeOut(duration, callback) — плавное
исчезновение.fadeToggle(duration, callback) — переключение
видимости.slideUp(duration, callback) — сворачивание.slideDown(duration, callback) — разворачивание.slideToggle(duration, callback) — переключениеПродвинутый способ анимации включает метод
.animate(properties, duration, easing, callback), который
позволяет изменять несколько свойств CSS одновременно.
$('.box').animate({ width: '200px', height: '100px', opacity: 0.5 }, 400, 'linear');
Cash предоставляет облегчённый интерфейс для AJAX-запросов, сохраняя синтаксис, близкий к jQuery:
$.get(url, data, callback, type) — GET-запрос$.post(url, data, callback, type) — POST-запрос$.ajax(options) — универсальный запрос с полными
настройкамиПример использования $.ajax:
$.ajax({
url: '/api/data',
method: 'GET',
dataType: 'json',
success: function(response) {
console.log('Ответ сервера:', response);
},
error: function(xhr) {
console.error('Ошибка запроса', xhr.status);
}
});
Cash поддерживает создание плагинов и собственных
методов, что позволяет адаптировать библиотеку под конкретные
задачи. Для добавления метода используется объект
cash.fn:
cash.fn.highlight = function(color = 'yellow') {
return this.each(function() {
this.style.backgroundColor = color;
});
};
$('.item').highlight('lightgreen');
Метод each обеспечивает перебор всех выбранных элементов
и сохранение цепочки вызовов. Такой подход позволяет расширять
функциональность без вмешательства в ядро библиотеки.
Cash легко сочетается с современными стандартами JavaScript. Можно
использовать ES6-модули, стрелочные функции, fetch и
промисы наряду с методами Cash:
$('.button').on('click', async () => {
try {
const response = await fetch('/api/data');
const data = await response.json();
$('.output').html(JSON.stringify(data));
} catch (e) {
console.error('Ошибка:', e);
}
});
Такой подход позволяет объединять преимущества Cash с нативными возможностями языка и повышает гибкость разработки.
$() в переменную при повторном использовании.requestAnimationFrame для сложных анимаций и избегать
частых изменений layout.DocumentFragment) и затем вставлять в DOM,
чтобы сократить перерасчёт стилей.Cash сочетает в себе компактность, простоту и расширяемость.
Возможность добавления собственных методов через cash.fn,
поддержка анимаций, событий и AJAX делают библиотеку универсальным
инструментом для работы с DOM в современном фронтенде. Она остаётся
лёгкой, что снижает время загрузки страницы, но при этом позволяет
решать сложные задачи без перехода на более тяжёлые фреймворки.