![]() |
Модераторы: Sardar, Aliance |
![]() ![]() ![]() |
|
Wowa |
|
||||||||||||||||||
Эксперт ![]() Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: 1 Всего: 290 |
Перевод популярного поста "Top 10 custom JavaScript functions of all time" от Dustin Diaz. Распространяется по лицензии Creative Commons, обязательно ставьте ссылку на оригинал и указывайте автора английского текста
Если бы существовал универсальный common.js объединяющий все JavaScript’ы на свете , вы бы отыскали в нём эти десять (плюс одна в подарок) функций. Это был бы швейцарский боевой нож, без которого ни один разработчик не выходил бы на дело. Эти функции, конечно же, прошли многократные испытания и доказана их полезность и то что они помогают всем, кто использовал их. Итак, не отвлекаемся, вот десять, я верю, самых великих пользовательских функций JavaScript употребляемых в наши дни. Перед тем как продолжить читать статью, предлагаю вам использовать для неё альтернативный стиль с удалёнными пробелами и большими отступами. Это можно сделать, выбрав «Clean with Whitespace» в панели управления. (От переводчика: это замечание относиться к оригиналу статьи) 10) addEvent() Конечно же, скрепка для прикрепления события! Неважно, какую версию вы используете, кем и когда она написана, эта функция делает то, что мы сказали. И конечно как вам могло быть известно, я соединил свою последнюю, вполне удобную версию addEvent () с небольшой помощью от победителя в споре и Марка Ваббена (Mark Wubben) плюс несколько незначительных синтаксических правок. Но просто, чтобы быть справедливым к Скоту Эндрю (Scott Andrew), вот оригинал, с которого всё началось. Оригинальная функция addEvent() от Скота Эндрю
9) addLoadEvent() Изначально написанная Саймоном Виллисоном (Simon Willison) она была замечательно освоенна всеми остальными, как простой способ добавить события, запускающиеся после загрузки страницы. Функция, разумеется, прикрепляет все ваши события к обработчику события onload, которого некоторые всё ещё могут увидеть, если есть такая необходимость, и, тем не менее, функция делает ровно то, что от неё ожидается, и делает это хорошо. addLoadEvent() от Саймона Виллисона
Конечно, другой способ - это просто назначить множество перехватчиков событий (listeners) к окну (window) используя функцию addEvent() уже описанную в 10 пункте. Назначение нескольких событий load к объекту window
8) getElementsByClass() Представляет собой плод коллективного творчества. Несколько разработчиков реализовали свои собственные версии, и не было доказано, что какая-нибудь одна версия лучше, чем другая. Как вы могли ожидать, моя скромная особа попробовала превзойти всех остальных. Функция getElementsByClass порождена необходимостью веб-программистов изящно и быстро выбирать элементы по имени класса, и к удивлению разработчиков, она не является настоящим методом DOM, как они могли бы подумать… в конце концов, есть getElementById, getElementsByName(), getElementsByTagName, куда, к чертям, делась getElementsByClass??? Вот она, во всей своей славе: getElementsByClass от Дастина Диаза (Dustin Diaz)
Просто напишите в начале функции имя класса, потом, если будет желание, второй и третий аргументы и свершится чудо! 7) cssQuery() Функция, первоначально написанная Дином Эдвардсом для того, чтобы делать выборку из DOM по свойствам CSS; поддерживает множество селекторов. Однако со всей честностью скажу, эта функция больше походит на мини-библиотеку и хоть размером не очень-то мала, но она, всё же, обалденная функция. Из-за её длины (и CC лицензии) я не могу поместить её на этом сайте. Полную документацию можно найти на справочных и загрузочных страницах myCssQuery. 6) toggle() Если быть полностью честным, вариантов этой функции существует более чем достаточно. По сути, история ‘переключалки’ происходит от скрытия\показа элемента как реакции на событие. Чтобы упростить дело, я тоже написал одну такую функцию. Я не имею в виду, что эта функция считается наилучшей функцией-’переключалкой’, но в ней заложены основы показа и скрытия элемента. toggle() слова народные
5) insertAfter() Насколько я помню, вроде бы у Джереми Кейта (Jeremy Keith) всплыла такая идея, хотя можно было бы подумать и про эту функцию, что она является методом ядра DOM. Но, как и с getElementsByClass, это не так. Вместо того чтобы выписать функцию прямо из книги, я лучше предоставлю это вам: приобретите эту книжку сами. Взамен я списал один общедоступный простой метод: insertAfter() всеобщее достояние
4) inArray() Очень грустно, что и inArray не входит в ядро DOM. Но! Так специально сделано, чтобы существовали такие забавные статьи, как наша! Эта функция, однако, не совсем функция. Это прототип, который расширяет заданный в DOM объект Array. Помню, однажды я подумал про себя: «Несомненно, раз я могу сделать так на PHP, это должно быть в JavaScript». Ну да, расширение inArray делает свою работу точно так, как вы и думали, если вы, конечно, PHP-программист. Вот версия с сайта EmbiMEDIA inArray, прототип объекта Array от EmbiMedia
3, 2, и 1) getCookie(), setCookie(), deleteCookie() Я по правде не знаю, что я бы делал без этих ребят. Я ненавижу то, как сделана реализация установки кук в JavaScript с помощью DOM. В PHP установка кук очень проста и она проста по одной главной причине - функции PHP работают точно также, как функции ниже. Все три функции являются всеобщим достоянием и могут быть свободно использованы. getCookie(), setCookie(), deleteCookie() - всеобщее достояние
Последняя, но не менее важная функция в подарок: прототип доллар-функции От этой функции балдеют очень многие. Во-первых, просто взгляните на неё. Прототип функции $
Скажите мне, разве это не прекрасно?! Коротко не только имя, но и описание. Функция принимает не только строки, но и объекты! Вы можете передать ей один аргумент, или же много! Безусловно, доллар-функция - моя любимая функция на всю жизнь, и она будет приносить пользу долгие, долгие годы. И все они… Надеюсь, этот краткий и полезный список функций JavaScript будет полезен вам, также как он был полезен мне. По следам публикации Добавлено после 30 комментариев… Хорошо, я могу понять всеобщую точку зрения, когда она гласит ‘вот эти 10 самые лучшие’. Суть в том, что эта десятка самая лучшая сугубо по моему мнению. Если бы Дин Эдвардс написал свой список десяти самых лучших функций, я уверен, это список отличался бы от моего. Если бы Стюард Лэнгридж(Stuart Langridge) написал свой список, он тоже бы отличался. Мой список сфокусирован главным образом на DOM. Функции определения браузера всегда под рукой у разработчика. Функции Ajax, я полагаю, сложно оценить как «лучшие за все времена», в основном, потому что Ajax переживает своё младенчество и всё-таки сначала должен впечатлить меня чем-то ошеломляюще полезным. Всем желающим просто вынести эти функции, и дополнить ими прототип в своих документах, флаг в руки и дополняйте себе прототип более чем 30 килобайтами, раз вы чувствуете, что это необходимо. Тем не менее, спасибо вам всем за доселе чудесные комментарии. Я продолжаю надеяться, что этот небольшой список будет полезен достаточно долго. Поверьте, есть сотни других замечательных функций, которые имели шансы попасть в этот список. Только то, что такой функции здесь нет, ещё не значит, что она нехорошая. Просто используйте ваше воображение. ;) Автор: Dustin Diaz Перевод: Alexander Dodonov http://javaportal.ru/javascript/articles/bestfunctions.html |
||||||||||||||||||
|
|||||||||||||||||||
![]() ![]() ![]() |
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |