Pull to refresh

Comments 22

А в чем преимущество? Fluid interface по именам тегов?
вес? и я бы сравнивал на с jquery, а c sizzle
Начнем с того, что Voyeur.js в ~ 100 раз меньше jQuery. Он не «издевается» над нативным JS синтаксисом. Для меня эта библиотека удобнее, по сравнению с тем же Sizzle (если говорить об объеме). Недавно появилась интересная статья «9 Signs You Shouldn’t Hire THAT Web Guy – 2013 Edition от David Walsh» там даже есть два абзаца «They're a „lump.js“ Developer» и «They Include Unnecessary Libraries».
UFO just landed and posted this here
Это чем jQuery издевается? Обычный js код. Прототипы вроде не расширяет даже.
Скорее Voyeur издевается. Налицо пляски с defineProperty.
Из документации:
Which browsers does Voyeur support?
Voyeur is tested in and supports all the latest, major browsers (IE10, Chrome, Firefox, Safari, Opera).

как-то не густо…
Если уж размер имеет значение то почему не Zepto? Production версия «9.7k when gzipped». Плюс последние версии jQuery разрешают создание собсвенной сборки с только требуемым функционалом.

Конечно прескорбно видеть как jQuery суют куда попало и используют только для получения элемента по id.

Но, имхо, это такая же крайность как превращать свой код в зоопарк и кидаться и стороны в сторону «лишь бы не jQuery».
Довольно-таки безобразно.

Voyeur.div.h1; // body>div>h1. Возвращает элемент h1
Voyeur.div.ul.li; // Возвращает массив элементов списка

Изменил разметку — и вместо элемента в коде массив, отлично-отлично. А если в списке не оказалось пунктов, то вообще ничего не вернется, по всей видимости. Зачем так жить.

Voyeur.create.div; // Создание элементов

Нестандартные элементы (<create></create>) пролетают. Вообще сайд-эффекты в геттере это странно, такой код сложно поддерживать.

Моя нелюбовь к jQuery только что пошатнулась, теперь я знаю, что есть способ хуже.
Еще — Voyeur.div.ul.li.use(); // Возвращает элемент div
Код-то интуитивно понятен, но кмк в реальной практике будет неудобен.
— Как получить элементы нескольких типов?
— Что если название тэга в переменной?
— Voyeur.find значительно длиннее и глазомозольнее, чем $
ну и т.д.
Не смог пройти мимо третьего пункта, простите.
;(function(V) {
    V.find(...)
}(Voyeur));
> supports all the latest, major browser
Так при таком подходе можно и querySelector приспособить — вообще обойтись без сторонней библиотеки
Как это без сторонней? А как же Vanilla JS?
Угу, красиво, только вот чтобы использовать сгенерированный же в коде селектор нужно будет делать eval… либо извращаться с генерацией селектора, что не всегда хорошо ложится на такое
Поясните пожалуйста:
Voyeur.create.div; // Возвращает элемент div
Voyeur.create.div.h1; // Возвращает элемент h1 с родителем div
Voyeur.create.div.h1.em; //

Это же свойства, каким образом они вызывают функции? Геттеры/сеттеры?
Да. И весь этот ужас такой медленный…

Voyeur.extendTags = function(obj, fn) {
Voyeur.nodes.forEach(function(tag) {
Object.defineProperty(obj, tag, {
get: function() {
return fn.call(obj, tag);
},

configurable: true
});
});

return obj;
};

П.С. Извините, тэги не работают.
Ясно. Спасибо. Отсюда и такой низкий охват совместимости…
Sign up to leave a comment.

Articles