Записи с тегом «jQuery»
Паттерны организации кода в JavaScript (памятка)
Более двух лет назад был написан сниппет «Паттерны организации кода на чистом JavaScript, JQuery и Prototype». За это время многое изменилось, сегодня выкладываю обновление в виде памятки по самым популярным способам создания reusable component'ов отсортированных от простого к сложному (в случае, если не нашел устоявшегося названия — пришлось придумать своё):
Чистый JavaScript без фреймворков
- Object Literal
- function constructor + object prototype (пример «Чистый JavaScript без использования фреймворков» в старом посте)
- Javascript Module Pattern
- Resig's Simple Inheritance (по результирующему синтаксису очень похож на подход Prototype)
jQuery
- «Минимальный» плагин (пример «jQuery» в старом посте)
- «Сбалансированный» плагин (мой пример в сниппете Шаблон jQuery-плагина, как оказалось, очень похож на jQuery Boilerplate)
- «Плагин с использование паттерна Bridge»
- jQuery UI widget factory (развитие подхода из предыдущего пункта)
Регистрация и отслеживание AJAX-запросов в Google Analytics
Регистрация и отслеживание AJAX-запросов в Google Analytics
Google-Analytics jQuery JavaScript AJAX
В API Google Analytics есть возможность программно регистрировать посещение страницы с помощью метода _trackPageview, это удобно использовать для отслеживания AJAX-запросов. Для упрощения использования этой функциональности в проектах, где есть jQuery был написан миниатюрный плагин:
(function ($) {
$.extend({
ga: {
trackAjax: function (url) {
if (window._gaq) {
_gaq.push(['_trackPageview', '/ajax-handlers' + url]);
}
}
}
});
})(jQuery);
Пример использования:
var ajaxUrl = '/get-some-data-via-ajax/';
$.ajax({
type: 'POST',
url: ajaxUrl
data: params,
dataType: 'json',
success: function (data) {
...
$.ga.trackAjax(ajaxUrl);
}
});
Важно помнить, что при каждом вызове функции _trackPageview делается дополнительный HTTP-запрос на сервера Google Analytics.
Шаблон jQuery-плагина
Обновление от 09.11.2011: Благодаря комментариям оптимизирован код шаблона.
Решил собрать полный шаблон jQuery-плагина, который используем чаще всего. Решение имеет следующие особенности:
- Есть настройки по умолчанию
- Хранилище настроек и переменных в виде специального объекта
- Поддержка method chaining
- Поддержка public-методов
Шаблон легко дополняется:
- callback'ами
- custom event'ами
Подборка функций на JavaScript для работы с числами с плавающей запятой
Несколько полезных функций (написанных не мной) для работы с числами с плавающей запятой в виде jQuery-плагина.
Отображение одного блока над другим с помощью jQuery
Быстрое решение (оригинал) для позиционирования одного блока на другим, упрощённый аналог Position из jQuery UI.
Плагин для поисковых подсказок на jQuery
Поисковые подсказки (такие, как например, на Yandex'е)), которые будут работать как прямые ссылки при отключенном JavaScript и будут подставлять поисковую фразу в поле ввода, если скрипты работают, можно реализовать с помощью небольшого jQuery плагина.
Валидация регулярным выражением (regexp) для jquery.validate
Удобный jQuery-плагин jquery.validate не позволяет встроенными средствами указать правило валидации в виде регулярного выражения.
Слияние JQuery-объектов
Часто для уменьшения количества запросов к DOM-дереву нужные элементы заранее выбираются и сохраняются в локальных переменных в виде экземпляра объектов JQuery. Например, таким образом:
var someNodes = $('.some-class');
var someOtherNodes = $('.some-other-class');
Как быть, если нужно применить какую-либо JQuery-функцию (например, hide() к элементам из обеих переменных?
ASP.NET HTTP-хендлер, возвращающий данные в формате JSON
Существует несколько способов вернуть данные в формате JSON из ASP.NET:
- Начиная с ASP.NET 3.5 для этого можно использовать обычные (
.asmx) веб-сервисы - В той же версии 3.5 можно использовать WCF
- Использовать специальные библиотеки, например Jayrock
- Использовать обычные
.ashx-хендлеры (работает и на ASP.NET 2.0)
