LINUX.ORG.RU

Легковесные альтернативы jquery

 ,


1

1

Есть какие-нибудь хорошие альтернативы jQuery? Мне от него надо только чуть более удобная манипуляция DOM-ом, чем в vanilla js. Кроссбразуерная (IE8+) поддержка, если здесь есть проблемы (вроде не должно быть). shortcut 'on' вместо addEventListener. AJAX нафиг не нужен, всякие анимации тем более.

Можно свой велосипедик навелосипедить, но ведь наверняка уже навелосипедили. Вот в ангуляре есть какой то jqlite, может ещё что есть?

★★★★★

Последнее исправление: Legioner (всего исправлений: 1)
Ответ на: комментарий от eth1

Кстати это не только особенность jQuery. Пересобирать можно, к примеру, и Dojo, оставляя только нужное.

Infra_HDC ★★★★★
()

Зачем? jQuery работает «достаточно» хорошо и быстро в 99% случаев, а если очень хочется напиши свой выкинув все лишнее, учитывая твои требования это займет не так много времени, ну и да, предложили уже собрать его помодульно выкинув лишнее.

umren ★★★★★
()

и есть еще http://zeptojs.com/ как раз создавался как легкая версия jQuery, может тебе с ходу подойдет.

umren ★★★★★
()
Ответ на: комментарий от umren

1. Не нравится обилие методов, делающих одно и то же.

2. Не нравится много функционала, который мне не нужен. Кажется можно делать кастомные сборки, буду посмотреть.

3. Не нравится слишком универсальный метод $. Он и селектит и создаёт и ещё что-то делает. И не нравится то, что ему плевать – нашлись элементы, не нашлись. Часто опечатываешься в селекторе – ни результата ни ошибки. Предпочёл бы семантику, которая мне позволяла бы чётко указывать, сколько элементов я ожидаю получить и генерировать ошибку, если это не так.

Legioner ★★★★★
() автор топика
Ответ на: комментарий от Legioner

С такими требованиями тебе легче свое что-то накостылять :-)

nagibator
()
Ответ на: комментарий от Legioner

Не нравится обилие методов, делающих одно и то же.

there is more than one way to do it

Не нравится много функционала, который мне не нужен. Кажется можно делать кастомные сборки, буду посмотреть.

выпиливай, но вообще нужно иметь объективные требования, а не заниматься микрооптимизациями

Не нравится слишком универсальный метод $. Он и селектит и создаёт и ещё что-то делает. И не нравится то, что ему плевать – нашлись элементы, не нашлись. Часто опечатываешься в селекторе – ни результата ни ошибки

length?

umren ★★★★★
()
Ответ на: комментарий от umren

there is more than one way to do it

И это плохо.

length?

Мне после каждого селектора проверять длину? Нафиг-нафиг.

Legioner ★★★★★
() автор топика

свой велосипед:

DOM ready реализаци для трех движков

библиотека селекторов типа sizzle

кросс-утилиты: массивы, объекты, реализация ООП

библиотека AJAX

по мелочи

anonymous
()
Ответ на: комментарий от anonymous

SPA+on demand load+ultra comression (lzma? haffman?)

anonymous
()

Есть какие-нибудь хорошие альтернативы jQuery?

Vanilla JS ?

q11q11 ★★★★★
()

Кроссбразуерная
IE8+
IE8
браузер

Сочувствую :} Собственно, в IE8 тоже есть querySelector/querySelectorAll, если тебе достаточно CSS2.1 селекторов и отсутствия поддержки незнакомых ему элементов (из HTML5 то бишь).

Если есть возможность, то лучше хотя бы до IE9+ поднять поддержку.

Deleted
()
Ответ на: комментарий от Legioner

Мне после каждого селектора проверять длину? Нафиг-нафиг.

функцию создай которая будет это делать? в других языках ты не проверяешь на true/false обычно?

umren ★★★★★
()

может поискать альтернативу DOM-у ?

anonymous
()
Ответ на: комментарий от Legioner

Мне после каждого селектора проверять длину?

Т.е. ты хочешь чтобы это делала либа, которая будет легче jq, при том что сама jq этого не делает, т.к. слишком жирно даже для jq?

no-such-file ★★★★★
()
Ответ на: комментарий от Legioner

Мне после каждого селектора проверять длину? Нафиг-нафиг.

Написать метод veryBestSelector(), который будет это делать, это видимо слишком сложно для лоровца.

vurdalak ★★★★★
()
Ответ на: комментарий от no-such-file

С чего ты взял, что jq этого не делает? Как он тогда обращается к этим элементам, когда я провожу интересующие меня операции?

Legioner ★★★★★
() автор топика
Ответ на: комментарий от Legioner

Функция из 3 строк это «переписывать jquery»? Боюсь, тебе проще будет найти китайца на елансе, потому что реальный код по сравнению с этим ещё сложнее, а ты его написать не сможешь.

vurdalak ★★★★★
()
Ответ на: комментарий от vurdalak

Если ты не заметил, у меня к jquery был длинный список претензий. Если я буду лепить свои методы поверх jquery, это будет неканоничный код. А писать неканоничный код куда хуже, чем тратить дополнительное время на тестирование.

Legioner ★★★★★
() автор топика
Ответ на: комментарий от Legioner

Все твои претензии к нему высосаны из пальца. Много способов сделать одно и то же — тебя никто не заставляет использовать или даже знать их все. Много ненужностей — оно модульное, выбери то что нужно лично тебе.

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

vurdalak ★★★★★
()
Ответ на: комментарий от vurdalak

Много способов сделать одно и то же — тебя никто не заставляет использовать или даже знать их все.

Ещё как заставляет. Как мне чужой код читать, если я не знаю все способы? Лезть на каждой строчке в документацию? Чем меньше API, тем меньше его надо запоминать. Делать на ровном местое из одного метода append два – несусветная глупость. И таких глупостей в jquery немало.

Много ненужностей — оно модульное, выбери то что нужно лично тебе.

Поковыряюсь на досуге, но вряд ли удастся сделать из 96 килобайтов <1 кб. А 100 килобайтов JS-а это полминуты загрузки на плохом интернете, считай отсеял 99% посетителей с плохим интернетом на ровном месте.

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

Я ищу библиотеку, которая мне больше подойдёт, чем jquery. Только и всего.

Legioner ★★★★★
() автор топика
Последнее исправление: Legioner (всего исправлений: 1)
Ответ на: комментарий от Legioner

Как мне чужой код читать, если я не знаю все способы?

Зачем тебе читать чужой код? Ты же свой писать собрался.

Я ищу библиотеку, которая мне больше подойдёт, чем jquery. Только и всего.

Вот именно. Ты ищешь библиотеки, которая _тебе_ больше подойдёт. Остальные решают это выкидыванием ненужных модулей jquery, поэтому маловероятно, что кто-то подготовил сборку лично для тебя.

vurdalak ★★★★★
()
Ответ на: комментарий от Legioner

Как он тогда обращается к этим элементам, когда я провожу интересующие меня операции?

С помощью стандартных querySelector, querySelectorAll, getElementById и прочих. Он проверяет для того, чтобы записать в искомый объект необходимое поле length. Для того, чтобы просто получить HTML-элемент, никакая проверка на длину не нужна. Просто получишь null вместо объекта.

vimquest
()
Ответ на: комментарий от vimquest

Т.е. ты утверждаешь, что для $(...), который делает огромное число операций, прогоняет кучу регэкспов по поданной строке, проводит кучу type check-ов, проверить одну int-овую переменную на 0 (или объект на null) это слишком жирно?

Legioner ★★★★★
() автор топика
Последнее исправление: Legioner (всего исправлений: 1)

Хоть и самореклама, но вот https://github.com/Svoloch/xpath-tools

В основном достаточно использовать только core, остальное по вкусу.

Жалобы и предложения принимаются.

SV0L0CH
()
22 апреля 2015 г.
23 августа 2015 г.
Ответ на: комментарий от Eddy_Em

А кто те миллионы пользователей, которые этот твой лисапед протестируют в разных редких сочетаниях браузеров/ОС/кодировок/т.п.?

anonymous
()

Можно свой велосипедик навелосипедить, но ведь наверняка уже навелосипедили

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

ya-betmen ★★★★★
()
Ответ на: комментарий от Legioner

вот такую библиотеку нашёл сегодня, по-моему как раз то что я хотел.

Там же пишут, что оно для современных браузеров, а ты хотел IE8. Судя по размеру там вообще никакого слоя совместимости нет. Тогда уж selectors api использовать и не париться.

anonymous
()

Легковесные альтернативы jquery

VanillaJS

q11q11 ★★★★★
()

Чистый js сейчас умеет многое (иногда даже больше jq), велосипедь по мере надобности.

JANB
()
Ответ на: комментарий от no-such-file

Почему тогда мой JS не тормозит даже на самых медленных мобилках?

Goury ★★★★★
()
Ответ на: комментарий от Legioner

Один хер её проверять надо в твоём случае

Goury ★★★★★
()
Ответ на: комментарий от kbagpat

спасибо за ссылку, мне точно пригодится!

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.