В продолжении темы каруселей! Slider-gallery

В продолжении прошлого поста по поводу каруселей...

Снова возникла потребность создать очередную карусель для нового проекта используя JS.
Образцом была взята навигационная карусель Apple (кстати замечательная идея использовать подобную штуку для навигации).

После получения задания сразу кидаюсь шерстить форумы, сайты наподобии Аяксиана, Динамик Драйв... Также незабываю стырить карусельку с самого Apple.
И того что мы имеем? Готовую и работоспособную эппловскую карусель и howto по созданию карусели аля "как на эппл".
В новом проекте этот слайдер должен отображать свежий видео/фото контент. Вроде бы все есть, но есть одно НО! Все это дело весит огромных килобайт JS. Только подумайте, что бы закрутить этот слайдер на Apple нам надо 250 кб JS и это на глагне (главной страничке).

Apple в своей карусели использовал 2 библиотеки: 1) Prototype, 2) script.aculo.us. Все это добро использует 2 внешних JS файла для обработки библиотек и функций написаных ручками.
И того имеем 4 внешних тяжелейших JS файла для реализации навигации.

Что касается JQuery, там та же история, те же 4 файла но если использовать сжатый JQuery-lite, то весить это будет 50 кб. В 5 раз меньше!!!!!!!!!!!!! Все равно нам для глагне не подходит. Решаюсь и сажусь писать сам, написал за 2 дня.

Итого что я имею? Полностью реализованый функционал эппловской карусели и 4 кб JS.
Спрашивается, зачем использовать Прототипы, JQuery и прочую лабуду, если можно самому все написать и получить (в данном варианте выигрыш в 62 раза) ???????????????

top of hotblogs.org.ua

Комментарии

риспект!

Макс, ты прав на 100%
как вариант, для еще большей оптимизации:
для разработки можно использовать чистый js код, а для продакшена использовать компрессированный:
http://javascriptcompressor.com/

кстати, 4 кб это кроссбраузерный?

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

кстати, сразу встречная идея, что если взять опыт от создания нескольких каруселей и вынести кросс-браузерные функции в отдельную библиотеку?
это позволит вынести представление каруселей в отдельный набор файлов и переключать (подменой имен файлов)/(вызовов функций)

Спрашивается, зачем использовать Прототипы, JQuery и прочую лабуду, если можно самому все написать и получить (в данном варианте выигрыш в 62 раза) ???????????????

Хотя бы потому что помимо каруселей могут быть и другие задачки в приложении. В итоге при десятке задачек подобных карусели, имеем 40к кода и 20 дней работы. Опять же с поддержкой проще, все вопросы кроссброузерности (между разными браузерами, между разными версиями браузера) ложаться на плечи разработчиков фреймворка.

P.S. В любом случае использовать готовое решение или писать самому - холивар.

неужели

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

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

хочешь интересную задачку?
как написать кроссдоменный ajax для того чтобы забрать JSON массив данных?(практически не один фреймворк такого не поддерживает!!!)

Например

jquery, который весит всего пару десятков кило? Напомню, что браузеры отлично кешируют данные, а вопрос медленного доступа в сеть уверенно идёт в историю. P.S. Еще раз повторюсь. Если нужно решать несколько задач, то КПД использования фреймворка заметно растёт. Использовать фреймворк или собственное узкозаточенное решение - холивар.