Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   когда не хватает библиотек типа JQuery? (https://javascript.ru/forum/misc/32349-kogda-ne-khvataet-bibliotek-tipa-jquery.html)

macdack 12.10.2012 18:25

когда не хватает библиотек типа JQuery?
 
прошу разработчиков с опытом пояснить в каких случаях недостаточно функционала JQuery и приходится писать на чистом JS

речь о самых распространенных областях - форумы блоги соцсети новости

melky 12.10.2012 18:28

Цитата:

Сообщение от macdack (Сообщение 209693)
прошу разработчиков с опытом пояснить в каких случаях недостаточно функционала JQuery и приходится писать на чистом JS

речь о самых распространенных областях - форумы блоги соцсети новости

когда нужно задействовать фичи HTML5 - их дохренище, я перечислять не буду.

macdack 12.10.2012 18:36

canvas audio video - не в счет, по ним у меня нет вопросов

вопрос о типовых задачах, о рутине таксказать
где JQuery слаб?

есть же например более навороченный Dojo...

Maxmaxmахimus 12.10.2012 18:45

ты видимо не понмиаешь что такое jQuery .
jQuery нужен просто для работы с DOM это низкоуровневый вспомогательный фреймворк. Иными словами он нужен ПРОСТО для того чтобы твои приложения УДОБНО взаимодействовали с DOM ..

само же приложение пишется на javascript как и обычно.

macdack,
плюсани мне в карму плиз

tenshi 12.10.2012 19:06

например для работы с выделениями и текстовыми диапазонами jq вообще не катит.

Hoshinokoe 12.10.2012 19:24

Цитата:

Сообщение от macdack
когда не хватает библиотек типа JQuery?
прошу разработчиков с опытом пояснить в каких случаях недостаточно функционала JQuery и приходится писать на чистом JS

речь о самых распространенных областях - форумы блоги соцсети новости

Ты неправильно думаешь. Каждая библиотека имеет свой функционал. И чтобы не изобретать свой велосипед (имею ввиду если такой функционал уже реализован), подключают библиотеку.

Например, та же jQuery представляет собой удобный инструмент для работы с dom-деревом. Для простых действий на странице - самое то.

Hekumok 13.10.2012 08:07

Цитата:

Сообщение от Maxmaxmахimus (Сообщение 209697)
macdack,
плюсани мне в карму плиз

Он на 6 плюсанул, теперь опять нужно минусануть

Maxmaxmахimus 13.10.2012 16:35

аахах) какой то пидор запорол мне все, плюсанул когда не надо было( вот помогай после этого
теперь хрен попадешь

Hekumok 13.10.2012 16:41

:)

macdack 13.10.2012 22:40

Цитата:

Сообщение от Maxmaxmахimus (Сообщение 209697)

macdack,
плюсани мне в карму плиз


с удовольством и не рас

Maxmaxmахimus 13.10.2012 23:26

macdack,
хватит в карму плюсовать(

я скажу очевидность но у меня была блатная карма 666 и все кому я помогал невозбранно засрали её....... Зачем.... Уааааааааааааааййй???

BallsShaped 14.10.2012 01:00

Maxmaxmахimus, понимаю твою проблему. С радость минусану тебя!

А по теме, у jQuery есть плагины, которые расширяют ее функционал. Думаю среди них найдется под любую распространенную задачу.

Maxmaxmахimus 14.10.2012 03:15

воообще то он имел ввиду именно что мыл jquery лишь либа для разработки всего и мыл чего она не умеет. А суть в том что это либа лишь для удобной работы с DOM

melky 14.10.2012 10:39

Цитата:

Сообщение от Maxmaxmахimus
воообще то он имел ввиду именно что мыл jquery лишь либа для разработки всего и мыл чего она не умеет. А суть в том что это либа лишь для удобной работы с DOM

на самом деле, жиквери давно переросла из маленькой библиотечки в огромную.

сейчас клад от неё только в том, что в её коде заложены важнейшие костыли, которые можно просто глянуть, когда потребуется поправить мифический баг в каком-нибудь браузере.

я считаю, что такая громоздкая большая библа не должна использоваться в проектах - всё устаревает, ни к чему поддерживать старые браузеры, которые уж точно не будут заходить на сайт как пользователи - только как иззвращенцы, вроде тех, кои заходили на сайты в старых IE < 5.5.


так зачем же держать аж 70кб кода для "удобной манипуляции элементами"? эта функция легко реализуется в куда меньших объёмах.

другое дело - jQuery 2.0, которая будет поддерживать только новые браузеры.

bes 14.10.2012 11:37

А мне нравится идея с внешними подключениями библиотек (тогда сколько бы не весила, вероятность наличия её в кеше браузера достаточно велика (если конечно многие будут использовать такой способ подключения)

Цитата:

Сообщение от melky
всё устаревает, ни к чему поддерживать старые браузеры, которые уж точно не будут заходить на сайт как пользователи - только как иззвращенцы, вроде тех, кои заходили на сайты в старых IE < 5.5.

absolutely

melky 14.10.2012 11:42

Цитата:

Сообщение от bes
А мне нравится идея с внешними подключениями библиотек (тогда сколько бы не весила, вероятность наличия её в кеше браузера достаточно велика (если конечно многие будут использовать такой способ подключения)

т.е. подгрузка ondemand ?

bes 14.10.2012 11:49

Цитата:

Сообщение от melky
т.е. подгрузка ondemand ?

просто подключение библиотеки, например, с офф. сайта (при неудачном подключении от себя), так как куча разработчиков это используют, а люди везде бродят :) , вероятность нахождения библиотеки в кеше браузера пользователя не мала, поэтому её не придётся загружать (один раз при заходе на твой или чужой сайт, где это используется)

macdack 14.10.2012 12:12

люди, об чем вы говорите, шо за глупости
70 кб загружается за дулю секунды

и есть долбанутые браузеры макрософта

поэтому такой кросплатформенный инструмент это практически индусральный стандарт

nerv_ 14.10.2012 12:23

Цитата:

Сообщение от melky
другое дело - jQuery 2.0, которая будет поддерживать только новые браузеры.

а такое есть? :)

Цитата:

Сообщение от macdack
поэтому такой кросплатформенный инструмент это практически индусральный стандарт

на мой взгляд старый браузеры действительно не стоит поддерживать. Смысл? Чем раньше они умрут, тем меньше костылей придется писать и появиться больше новых возможностей.

bes 14.10.2012 12:30

Цитата:

Сообщение от nerv_
Чем раньше они умрут, тем меньше костылей придется писать и появиться больше новых возможностей.

Лозунги для забастовки: "Смерть костылям!!", "Зае-aл IE<9!!" и т.д. :D

BallsShaped 14.10.2012 12:35

Самая большая беда html/css/js в том, что одни пополняют спецификацию по принципу "я уже реализовал нужную функцию, мож добавим ее в спецификацию?", другие и вовсе кладут на нее (хотя ie вроде исправился). Так вот, по-моему, всегда будет нужна какая-нибудь прослойка для кроссбраузерности. Но я считаю, что это нужно делать, добавляя недостающий функционал, чтобы можно было писать vanilla-код. Собственно, основная преграда же отсутствие конструкторов вроде HTMLElement в старых ослах.

melky 14.10.2012 13:32

Цитата:

Сообщение от nerv_
а такое есть?

я читал на хабре обещания о светлом будущем жиКвери - тогда я сразу поменял мнение об этой библе с библы до "сборки полезных костылей в одном скрипте".

Цитата:

Сообщение от BallsShaped
"я уже реализовал нужную функцию, мож добавим ее в спецификацию?",

:D убило. сущая правда :D

Цитата:

Сообщение от BallsShaped
Так вот, по-моему, всегда будет нужна какая-нибудь прослойка для кроссбраузерности

я написал функцию getVendorPropName, которая быстренько находит вендорное имя для свойства, и это всё, что нужно знать для кроссбраузерности в отношении этих лагерей префиксов.

Цитата:

Сообщение от BallsShaped
. Но я считаю, что это нужно делать, добавляя недостающий функционал, чтобы можно было писать vanilla-код.

т.е. до такой степени :
// для IE < 10, Chrome, Opera, FireFox и т.д. забудьте о префиксах и костылях в этом месте - всё уже сделано до вас!

var animtime = window.animationStartTime;

var reqAnimFrame = window.requestAnimationFrame;

Че за свойство такое?

блина, это было бы просто ЗАМЕЧАТЕЛЬНО. если я не ошибаюсь, этот финт зовётся полифиллом, да?

хм ... а я могу так сделать. я недавно как раз начал вкушать прелести функционального программирования ...
// перед этим сделать defineProperty для старых браузеров.
Object.defineProperty(window, "requestAnimationFrame", { value: getVendorPropValue("requestAnimationFrame") || мой_костыль });
Object.defineProperty(window, "animationStartTime", { get: makeGetter( window, getVendorPropName("animationStartTime")) || Date.now } );

это так, мыслишки ...

классно было бы сделать ещё вот так :
// для IE > 5.5 (фильтры), и всех других браузеров ... в одном флаконе.
document.body.querySelector('.shadowly').style.boxShadow = "1px 1px 1px black";


вот это я понимаю ... настоящее удобство.

macdack 14.10.2012 14:55

скажите, а жиквери полностью заменяет гольный яваскрипт в работе с ДОМ?

melky 14.10.2012 16:06

Цитата:

Сообщение от macdack
скажите, а жиквери полностью заменяет гольный яваскрипт в работе с ДОМ?

что значит "заменяет" ? она предоставляет обёртку над ними, очень удобную обёртку.

macdack 14.10.2012 16:26

ну, я о том что как я понимаю есть апи для работы с дом - все методы управления узлами
жиквери это обертка удобная

вопрос простой - жиквери охватывает все функции ?

tenshi 14.10.2012 23:02

нет конечно, только самые популярные

kobezzza 15.10.2012 09:14

Всегда удивлялся тем разработчиками, которые кричат: "мы не можем отказаться от ИЕ6!". Правда в том, что нужно поддерживать те браузеры, которыми реально пользуются ваши юзеры. Например, в Яндекс.Метрике (где я работаю) минимальная версия ИЕ это 8, а через пол года планируем сделать 9-ку и выкинуть кучу кода хаков. Или например у меня есть свой проект, я проводил соц исследования и узнал, что моя ожидаемая аудитория вообще не пользуется ИЕ, а пользуется последними версиями ФФ и Хрома, поэтому я просто делаю поддержку всех последних версий браузеров, не юзаю DOM-фреймворки и забываю про хаки)

macdack 15.10.2012 10:40

если пользоваться последними-предпоследними версиями ФФ и Хрома
то есть ли смысл в джикверях?

kobezzza 15.10.2012 10:57

Цитата:

Сообщение от macdack (Сообщение 210141)
если пользоваться последними-предпоследними версиями ФФ и Хрома
то есть ли смысл в джикверях?

Есть, jQuery - это довольно удобная обёртка для DOM методов + дополнительные фишки, типо реализации паттерна "наблюдатель" и т.д.
В принципе jQuery 2.0 должна сильно похудеть и будет вообще здорово :)

Кверя в чистом виде удобна для малого кол-ва кода, а если вы пишете большой проект, то как правило реализуют над-интерфейс с более высоким уровнем абстракции (например, БЭМ Яндекса) или берут более заточенный под это фреймворк (например, google closure).

macdack 15.10.2012 11:11

какие еще есть фреймворки с хорошей русскоязыяной документацией?

Maxmaxmахimus 15.10.2012 14:04

может я че не знаю но jQuery охватывает ВСЕ функции для работы с DOM при том добавляет удобные действия в одну функцию, а при API бы это делалось в строчки 4-5 кода. Разве нет?


А когда нужно сделать че-то необычное а jQuery это не умеет (вдруг), для этого есть функция each

$('бла').css('color':'red').each(function(){

    this // HTMLElement, тут делаем с ним извращеныне действия

}) .ololo().animate() // после each цепочку можно дальше продолжать

melky 15.10.2012 15:30

Цитата:

Сообщение от Maxmaxmахimus
для этого есть функция each

для этого есть плагины, а не each. зачем засорять такую красивую цепочку этим уродским вызовом each с callback'ом.

Maxmaxmахimus 15.10.2012 15:31

да, я думаю ты прав, но мне не хотелось бы тут обьяснять как писать плагины по этому я показал простой путь, и разумеется это ложь, each нужен только для перебора но я намеренно СОВРАЛ потому что для начальных знанйи этого достаточно будет чтобы понять что jQuery легко делает то чего не может.

melky 15.10.2012 15:44

Цитата:

Сообщение от Maxmaxmахimus
разумеется это ложь, each нужен только для перебора но я намеренно СОВРАЛ

:D :lol: :lol: по нарастающей )

tenshi 15.10.2012 21:03

навскидку: как с помощью jquery получить список установленных элементу атрибутов?

bes 15.10.2012 21:07

http://javascript.ru/forum/jquery/32...uty-input.html
не

Maxmaxmахimus 15.10.2012 21:56

наркоман, ты еще спроси как с помощью jQuery 2+2 посчитать
$('body')[0].attributes

devote 15.10.2012 23:40

Цитата:

Сообщение от Maxmaxmахimus
$('body')[0].attributes

document.body.attributes
:)

Maxmaxmахimus 16.10.2012 12:39

devote,
надо с помощью jQuery ;)

macdack 16.10.2012 21:27

Цитата:

Сообщение от Maxmaxmахimus (Сообщение 210469)
devote,
надо с помощью jQuery ;)

ты наркоман хуле ?


Часовой пояс GMT +3, время: 15:55.