Главная > AJAX, Open Source, Разное > JSLoader — универсальный загрузчик AJAX библиотек

JSLoader — универсальный загрузчик AJAX библиотек

6 ноября 2007

Если вы разрабатываете сложный веб-сайт или веб-приложение, то наверняка используете какой-то из популярных фреймворков, значительно упрощающих жизнь разработчику. Это могут быть как мощные "тяжеловесы" вроде ExtJS, Dojo toolkit, так и сравнительно небольшие тулкиты, такие как jQuery, Prototype, Lightbox и другие. Хотя многие разработчики фреймворков стремятся к универсальности и пытаются охватить все нюансы разработки в своём продукте, но все равно часто получается обратное - для каждого конкретного проекта существует несколько библиотек, которые именно вместе покрывают все потребности разработки. Соответственно, нередко можно встретить сразу несколько библиотек в одном проекте, к примеру мы в своих проектах применяем комбинацию из нескольких известных библиотек, причём, некоторые из них только из-за одной-двух функций, которые реализованы наиболее удачно.


Но в таком случае перед разработчиком стоит вопрос распространения библиотек, построения правильной системы их загрузки и взаимодействия. Конечно, можно просто выстроить правильную последовательность загрузок, чередуя теги <script>. А можно, пожурив JavaScript за отсутствия аналога require/include (это конструкции из PHP, сюда же отнести можно и конструкции require_once), использовать проект JSLoader, который предоставит всю необходимую функциональность.

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

Текущая версия JSLoader-а позволяет загружать следующие библиотеки:

  • Управлять загрузкой Dojo toolkit-а, в том числе раздельно загружать различные его модули (Dijit, dojo, dogox)
  • Ext 1.1.1 и ветку 2.0
  • FCKEditor
  • JQuery
  • Lightbox
  • Mochikit
  • Plotkit
  • Google Prettify
  • Prototype
  • Scriptaculous
  • SWFUpload
  • TinyMCE
  • YahooUI

Причём, поддерживается и загрузка всей библиотеки, и её отдельных модулей (конечно, если она это позволяет, либо использовать встроенные средства для управления загрузкой конкретной библиотеки), а также одновременная поддержка различных версий, и удалённая загрузка - теперь можно абстрагировать приложение от конкретных версий и путей, переместив их хоть даже на отдельный сервер/домен, и подгружая только нужные. Особенно это ценно для многосайтовых приложений или тестовых платформ, где нужно не только разные библиотеки но и быстрое переключение для использования разных версий. Кроме JavaScript кода загружаются также и CSS-стили.

Пока из описания я не увидел чёткого указания на применение кёширования, вероятно это оставлено на промежуточный сетевой уровень, например, кёш браузера или прокси-сервера, но думаю, что доработка библиотеки для использования её совместно с различными приёмами кёширования будет довольно просто. А если использовать ещё и поддержку на стороне сервера, реализовав там, к примеру, прозрачное сжатие кода (путём удаления комментариев и т.п.) и использовать GZip-компресии, то получится очень мощная и расширяемая инфраструктура.

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

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

  1. 1 августа 2008 в 22:10 | #1

    Люблю сообщения в таком духе! Большое спасибо 🙂

  2. 27 августа 2008 в 21:32 | #2

    Сенкс. Это именно то, что нам нужно было 🙂

Комментирование отключено.