![]() |
Модераторы: Sardar, Aliance |
![]() ![]() ![]() |
|
Octane |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 14.5.2007 Где: Волгоград Репутация: нет Всего: нет |
Здравствуйте.
Занимаюсь разработкой JavaScript framewok'а «js-core». Хотел бы услышать замечания или рекомендации по поводу реализации работы и функциональности framework'а. Названия методов схожи с «jQuery», но реализация и входные параметры совершенно другие.
Функция «$» принимает в качестве входного параметра DOM-узел или строку, содержащую идентификатор узла. В отличие от «jQuery», в «js-core» работа ведется с последним используемым узлом, т.е. в «jQuery» приведенный выше код перезаписал бы «document.body.innerHTML», вместо того, чтобы изменить «innerHTML» только что созданного узла «h1», как в «js-core». Для чего собственно был написан? Для применения в небольших проектах, где использование такого «монстроскрипта», как «jQuery» или «PrototypeJS» нецелесообразно, а так же для ситуаций, когда требуется высокая производительность и малое время загрузки, но в тоже время не хочется писать на «голом» JavaScript. Это сообщение отредактировал(а) Octane - 14.9.2008, 00:30 |
|||
|
||||
JSman |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 279 Регистрация: 10.7.2006 Репутация: 1 Всего: 4 |
Функционал стандартный.
А вот почему я против jQuery и прочих подобий: при использовании магической функции идет либо замена нода на урезанный вариант, либо идет навешивание свойств, что медленно. |
|||
|
||||
Octane |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 14.5.2007 Где: Волгоград Репутация: нет Всего: нет |
Все методы доступны через prototype, поэтому не должно быть особого снижения быстродействия.
Принцип примерно такой
|
|||
|
||||
JSman |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 279 Регистрация: 10.7.2006 Репутация: 1 Всего: 4 |
Поймите меня правильно, я уже проходил это. Я реализовывал под ie эмуляцию Node, чтобы можно было расширить прототип. В итоге получилось сплошное нагромождение кода. У Вас в фреймворке, на лицо, как минимум, отсутствие полноценной работы с атрибутами. Почитайте минимум ppk, там есть описание дом-свойств. Игнорирование таких методов как swapNodes и прочих не есть хорошо. И поверьте, это лишь начало. Можно продожить демагогию об отборе элементов и так далее. А событийная модель?
В итоге, я хочу сказать, продукт пока еще сырой, особой ценности не несет (прошу прощения за критику). Вникните в идеи Dean Edwards. Поможет, если что-то новое хотите создать. Постройте именно концепцию фреймворка. Без этого не видать успеха |
|||
|
||||
Sannis |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 14.8.2007 Где: Москва Репутация: нет Всего: 13 |
[offlopic]Дня не прошло, как вы разукрасили гравную блока тупым баннером Сапы. Ну нафига? (:[/offlopic]
-------------------- |
|||
|
||||
JSman |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 279 Регистрация: 10.7.2006 Репутация: 1 Всего: 4 |
Юмор оценил ![]() Если по существу, дело в том, что любой должен, если хочет протолкнуть сквозь массы свой программный продукт, особенно фреймворк, сказать, что тот механизм лучше другого тем-то и тем-то, иначе зададим вопрос: зачем он нужен. В данном случае, мы говорим о ядре и поддержке Node. Написать функции типа trim, это, конечно, прикольно, но нужно понимать, что фреймворк должен иметь свой двигатель, причем именно в этом заключается его реальное отличие от иных продуктов. Если это пародия на jQuery, то лучше этого продукта - jQuery, как минимум. Можно красть идеи - это совершено правильно. Крадите, в этом прогресс, законодательство не запрещает. Уже фреймворки в мире знают Если предъявлять что-то новое, то нужно сравнивать новое веяние по : 1. событийным моделям 2. компонентному подходу 3. отбору элементов 4. неявной поддержке стандартов 5. публикованию принципиально новых универсальных функций, которые реально уменьшают объем кода, например сортировка элементов. 6. анимации, в конце концов. 7. скорости - в первую очередь и так далее. |
|||
|
||||
Се ля ви |
|
|||
![]() Java/SOAрхитектор ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2016 Регистрация: 5.6.2004 Где: place without tim e and space Репутация: нет Всего: 127 |
Octane, главная проблема с этими библиотеками в том, что они грузятся целеком, при этом они довольно большие и используются обычными юзверями на 2-3%.
Я сейчас разрабатываю механизм динамической подгрузки небольших кусочков сценариев через AJAX по мере надобности, я думаю, вам тоже следует посмотреть в эту сторону ![]() -------------------- |
|||
|
||||
Octane |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 14.5.2007 Где: Волгоград Репутация: нет Всего: нет |
Се ля ви, да я тоже думал об этом, поэтому пока не спешу все модули (AJAX, Forms, ect) объединять в один файл, хотел реализовать механизм загрузки таких модулей (если они нужны), типа инклуда библиотек, правда не через AJAX, а просто созданием нового DOM-узал «script». Но пока, не успел это сделать.
JSman, да естественно он еще сырой, правда я не ставил перед собой задачу «угадывать, что же хотел написать программист», как это сделано, например, в jQuery, который вместо указанного имени атрибута «class» может подставить правильное значение «className», поэтому для многих может показаться что некоторые функции работают не правильно. Анимация конечно будет, пока можно сказать реализован базовый функционал. Да и я не пытаюсь написать «убийцу jQuery» или какого-то другого существующего фреймворка. Просто пытаюсь сделать что-то более быстрое и легкое, но в тоже время многофункциональное. swapNode ни разу не приходилось использовать и видеть примеры его использования в каких-либо скриптах. Это сообщение отредактировал(а) Octane - 9.9.2008, 20:26 |
|||
|
||||
JSman |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 279 Регистрация: 10.7.2006 Репутация: 1 Всего: 4 |
Количество кусочков библиотеки = количество запросов на сервак. тормозить не будет ли случайно?;-)
Вот его можно было бы использовать здесь. И есть еще много примеров. |
||||
|
|||||
Octane |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 14.5.2007 Где: Волгоград Репутация: нет Всего: нет |
А чем «insertBefore» плохо? Этот метод переносит существующий узел. Не удалять, не пересоздавать не надо, просто выполняем «insertBefore» с уже существующим узлом. «swapNode», как я понял, вообще выдумка Microsoft, как и «outerHTML» и другие бесполезные вещи.
Это сообщение отредактировал(а) Octane - 21.9.2008, 23:15 |
|||
|
||||
JSman |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 279 Регистрация: 10.7.2006 Репутация: 1 Всего: 4 |
Вы же создатель Фреймворка и Вы же не видите основной ценности использования готовых функций. Поучать не собираюсь, но отрицание предложений от Ms, их концепции, как пример, породит брешь в программном продукте. insertBefore != swapNode outerHTML - это нормально Вот, специально для Вас, приведу реализацию кроссбраузерных функций
Разговор переходит во флуд. Надеюсь, что мы в данном разделе не будем видеть холивар ![]() |
||||
|
|||||
Octane |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 14.5.2007 Где: Волгоград Репутация: нет Всего: нет |
Есть функции «inserAfter» и «insertBefore»
которые выполнят тоже самое, используя метод «insertBefore», надобность делать «swapNode», мне кажется, отпадает. Пример использования «swapNode» не нашел ни в «jQuery», ни в «Prototype», ни в «MooTools», ни в «DOMAssistant». Видимо, не такая уж это ценная готовая функция. Про «outerHTML» я был не прав, спасибо за полезную функцию, включу ее в «js-core». Это сообщение отредактировал(а) Octane - 24.9.2008, 12:56 |
|||
|
||||
Octane |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 14.5.2007 Где: Волгоград Репутация: нет Всего: нет |
JSman, можете рассказать для каких браузеров нужен «node.xml»?
|
|||
|
||||
JSman |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 279 Регистрация: 10.7.2006 Репутация: 1 Всего: 4 |
Опера и IE.
|
|||
|
||||
![]() ![]() ![]() |
Здесь публикуют скрипты, которые уже проверены в обсуждениях других тем (при этом полезно поставить ссылки на все смежные обсуждения) или переносятся кем-либо из модераторов по просьбе участников, если видно, что в результате обсуждения темы был написан полезный или интересный скрипт. Третий возможный вариант - участник форума публикует скрипт, заведомо известный как полезный и эффективный, для, возможно, небольшой доработки и обсуждения. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | JavaScript: Наши скрипты | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |