Re[2]: jQuery – Javascript нового поколения
От: Mamut Швеция http://dmitriid.com
Дата: 25.07.07 14:33
Оценка: 8 (1) +2
I>эээ ребяты.... а зачем это все? расскажите? ну мне просто интересно нахрена уменьшать скорость и так медленного js? или вы хотите сказать что синтаксис этой библиотеки проще чем стандартный? не, действительно реально ктото это использует и оно ему удобно?

Я это реально пользую и это мне реально удобно.

I>обычно у программистов уже есть свой оверлей со всеми стандартными функциями, а переделывать синтаксис орбражений в DOM зачем? XPath? реализуется если надо простым регспом, причем на стандартном сайте имхо такие извраты абсолютно не зачем.


Там не только XPath, там и CSS селекторы. Которые во много раз удобнее, чем getElementById + getElmentsByTagName

I>Деревья, табы, ajax? обычно это стандартные контролы на стандартной обвязке там где оно надо — проинклюдили скрипт вызвали функцию и все.


Что такое стандартные контролы в стандартной обвязке?
Некоторые плагины приведены, как примеры того, что может являться плагином в jQuery

I>Я не критикую мне просто интересно — реально удобно чтоли? вот не понимаю я зачем изобретать все вермя велосипед. использовать различные СВОИ шаблонизаторы вместо xslt+xml, использовать фреймворки для JS. зачем?


Что за свои шаблонизаторы? В статье об этом ни слова

Теперь развернутый ответ.

Что такое фреймворк? Это набор функций, облегчающий выполнение каких-то действий. Каждый раз, когда программист говорит "обычно у программистов уже есть свой оверлей со всеми стандартными функциями", это надо читать так: "а у нас уже свой фреймворк используется".

Что такое jQuery? Это невероятно маленький (последняя версия — 20KB в сжатом виде) и один из самых быстрых доступных JS-фреймворков. То есть jQuery предлагает набор функций, облегчающих жизнь программисту.

Например, вот некоторые из проблем, вставшие перед разработчиками и решенные на jQuery:
http://rsdn.ru/forum/message/2589354.aspx
Автор: Mamut
Дата: 18.07.07

http://www.rsdn.ru/forum/message/2319225.aspx
Автор: Mamut
Дата: 25.01.07
(сравни объем кода на голом JS и на jQuery)
http://www.rsdn.ru/Forum/?mid=2508833
Автор: Mamut
Дата: 31.05.07

http://www.rsdn.ru/Forum/?mid=2321225
Автор: Mamut
Дата: 26.01.07

http://www.rsdn.ru/Forum/?mid=2334773
Автор: Mamut
Дата: 05.02.07

и т.п.

Эти всё короткие примеры, но они показывают, что даже самые непонятные запросы (чего, например, стоит вот этот
Автор: Mamut
Дата: 13.07.07
) на jQuery решаются легко и весело. Потому что набор функций в jQuery гениален до неприличия.

Пример. Код используется у меня в примерах по jQuery (надо бы их обновить...):
// находим все элементы с class="ex" (это ссылки)
// и присваиваем им в onclick функцию
$(".ex").click(
    function() // при клике по ссылке с class=".ex" будет вызвана эта функция
    {
        var a = $(this);

        // показываем элемент с id="loader"
        $("#loader").show("fast");      

        // находим элемент с id="example"
        $("#example") 
            .animate({height: "hide"}, "fast") // прячем его
            .find("#anchors").empty()          // в нем находим элемент с id="anchors" и очищаем его контент
            .end()                             // возвращаемся к элементу с id="anchors"
            .find("div").remove()              // находим все div'ы (внутри элемента с id="example") и удаляем их
            .end()                             // возвращаемся к элементу с id="anchors"
            .animate(                          // прячем (опять? видать баг в коде :) )
                {height: "hide"},          //   схлопываем по высоте
                "fast",                    //   быстро
                function()                 //   по завершении вызываем функцию, в которой
                {
                    // берем значение из аттрибута href кликнутой ссылки
                    // и подгружаем с этой ссылке контент с помощью ajax'а
                    $.get(a.attr("href") + "?" + Math.random(), handleResponse);
                }
            );

        return false;
    }
);


Этот пример показывает некоторые проблемы, которые на голом JS решаются неудобно:
// находим все элементы с классом ex и присваиваем им onclick
$(".ex").click(...

// аналог
var a = getElementsByTagName("a");
for(i = 0; i < a.length; i++)
{
    if(a.className == "ex")
    {
        a.onclick = ...
    }
}


Или:
// находим все элементы div внутри элемента с id="example"
$("#example").find("div")

// аналог
?????????


Причем такие проблемы возникают на самом деле чаще, чем кажется. Просто работа с чистым JS или слабым фреймворком заставляет заранее избегать таких постановок задач. С jQuery становится нестрашен практически по-любому сформированный документ.

Например, один мой товарищ получает списки цен в виде HTML. Ему надо выводить сумму. Решение? Простейше на jQuery. См. http://dmitriid.com/jquery — "Excel руками". Решение занимает четыре строчки. Для того, чтобы его написать, мне понадобилось меньше пяти минут. И так — во всем


dmitriid.comGitHubLinkedIn
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.