Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Vanillatree - ванильная реализация jstree (https://javascript.ru/forum/project/53290-vanillatree-vanilnaya-realizaciya-jstree.html)

FINoM 28.01.2015 15:37

Vanillatree - ванильная реализация jstree
 
В связи с тем, что одобрили мой пулл-риквест в репку microjs, представляю на суд общественности свою небольшую разработку Vanillatree.



Скрипт является ванильной заменой для jQuery плагина jstree. Поддерживается Internet Explorer 10+. Чтоб работало в деватом, нужно подключить полифил classList.

API предоставляет методы для добавления, удаления, выбора, сворачивания и разворачивания ветвей.

add(options) -- добавляет ветвь
move(id, parentId) -- переносит ветвь к другому родителю
remove(id) -- удаляет ветвь
open(id) -- разврорачивает поддерево
close(id) -- сворвчивает поддерево
toggle(id) -- сворачивает или разворачивает поддерево в зависимости от состояния
select(id)-- выбирает ветвь

Кажое действие, вызванное методом или действием пользователя генерирует соответствующее кастомное DOM событие. В объекте detail события содержится id ветки.

vtree-add
vtree-move
vtree-remove
vtree-open
vtree-close
vtree-select

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

Паверед бай Балалайка.

d.skuratovich 28.01.2015 16:55

Ты не написал зачем это

FINoM 28.01.2015 16:58

Цитата:

Сообщение от d.skuratovich
Ты не написал зачем это

Да, не написал.

d.skuratovich 28.01.2015 16:59

FINoM, ну так может стоит просветить зачем это все надо?

FINoM 28.01.2015 17:03

Цитата:

Сообщение от d.skuratovich
ну так может стоит просветить зачем это все надо?

Для реализации деревообразных виджетов с неограниченным количеством вложенных ветвей, например, для вывода дерева файловой системы на сайте или в веб приложении.

d.skuratovich 28.01.2015 17:04

FINoM, не-не, это я понял. Не понятно зачем еще одно решение делать

FINoM 28.01.2015 17:19

Цитата:

Сообщение от d.skuratovich
Не понятно зачем еще одно решение делать

Оригинальный jstree перегружен кучей лишних, как по мне, фич, из-за этого, он чересчур тяжелый (115К против 4.5К несжатого кода). Плюс, он требует jQuery, который большинству людей не только не нужен сам по себе, но и утяжеляет страницу на дополнительныз 93К.

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

Ссылки по теме:
http://youmightnotneedjquery.com/
http://vanilla-js.com/

d.skuratovich 28.01.2015 22:16

Цитата:

Сообщение от FINoM (Сообщение 353921)
Оригинальный jstree перегружен кучей лишних, как по мне, фич, из-за этого, он чересчур тяжелый (115К против 4.5К несжатого кода). Плюс, он требует jQuery, который большинству людей не только не нужен сам по себе, но и утяжеляет страницу на дополнительныз 93К.

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

Ссылки по теме:
http://youmightnotneedjquery.com/
http://vanilla-js.com/

Это я и хотел услышать. Увы, но мне кажется в наш век, где почти на каждом сайте есть jQuery, а интернет уже довольно таки дешевый-это не мотивация

FINoM 28.01.2015 22:29

Цитата:

Сообщение от d.skuratovich
Увы, но мне кажется в наш век, где почти на каждом сайте есть jQuery, а интернет уже довольно таки дешевый-это не мотивация

Я слышал это многократно. Впрос один: зачем перегружать страницу, если этого можно не делать? Вопрос риторический, он направлен не вам.

Тенденции таковы, что все, кто хочет делать качественные продукты экономят на спичках. Ускорение загрузки гугла на 200 миллисекунд тиражировалось по интернету, как прездничная новость. Люди меняют Жиквери на Зепто, чтоб сэкономить несколько килобайт, используют спрайты, минификаторы и конкатенаторы скриптов и стилей... Можно сказать, что ваш продукт не требует предпринимать мер по уменьшению трафика и количества запросов, но тогда это не проект, это халтура.

melky 28.01.2015 22:59

Цитата:

Сообщение от d.skuratovich (Сообщение 353963)
Это я и хотел услышать. Увы, но мне кажется в наш век, где почти на каждом сайте есть jQuery, а интернет уже довольно таки дешевый-это не мотивация

уже далеко не на каждом :)

Vlasenko Fedor 29.01.2015 00:52

FINoM , как то скудно. Честно, я понимаю труд разработчика, но твой пример чем то схож из учебника. По крайней мере так же убог функционалом
http://javascript.ru/ui/tree+++
http://javascript.ru/ui/ajaxtree
Сам пользуюсь dynatree, вот здесь функционал, легкая интеграция, но понятно за это мы платим подключениями дополнительных библиотек
Желаю и тебе реализовать частицу его.

d.skuratovich 29.01.2015 08:57

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


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