Pull to refresh

Comments 18

А что плохого в том, что появится ещё один Open Source проект? Может, он перерастёт аналоги (если они есть).
Не понял при чём тут приведённая ссылка?

Кто Вам мешает на основе данной демы загрузчика сделать свой?
В Вашем собственном загрузчике скрипт может грузиться, например, в LocalStorage, и, если путь запрашивается ещё раз, доставать его оттуда.

Смысл был избавиться от лишних обёрток типа Define
+ Подменить Scope.
То, что я выложил, это всего лишь пример Именно загрузчика.
Какие обёртки синтаксического сахара на него наложить — ваше дело.

Я собираюсь в перспективе сделать именно LocalStorage хранилище, чтобы не грузить дважды.
+ указание базового URL для скриптов.

Но это в перспективе, сейчас мне и этой игрушки хватает вполне.
1. with statement deprecated
2. загрузка через xhr конечно привлекательна, но не актуальна на сегодняшний день, конечно если только не делать вариант с загрузчиком, который сможет работать в `legacy` режиме, но тогда опять же придётся оборачивать модули во что-то похожее на amd.
3. даже если использовать xhr и хранить в LocalStorage, то модулям желательно знать об их зависимостях, когда будем запускать их внутри песочницы, а это значит что нам опять нужно что-то похожее на amd.
Про кэширование опять же LMD, которое очень просто включается (2-3 опции в конфиге + замена script тега на lmd-загрузчик)
Сделал MAIN UPDATE в начало топика, до хабраката.
Спасибо, про то, что with — deprecated я не знал.
Всё таки я не могу понять при чем тут ссылка на developers.google.com/closure/, которую можно добыть следуя Вашему комментарию.

Но все же интересно, есть ли альтернативы AJS, CJS, etc
LMD из моей статьи, которую вы упомянули :)

LMD-модуль может быть 1-в-1 как Node.js
var $ = require('jQuery'),
    Roster = require("b-roster");

new Roster($('body'));

В процессе все это дело (если нужно) становится вот таким:
(function (require, exports, module)
var $ = require('jQuery'),
    Roster = require("b-roster");

new Roster($('body'));
})

А потом входит в сборку LMD-пакета (aka индексного файла), минимизируется, бла-бла-бла…
// Тут какой-то код LMD
{
    "index.js": function (require, exports, module)
        var $ = require('jQuery'),
            Roster = require("b-roster");

        new Roster($('body'));
    },

    "other_module.js": ...
}
// и тут немного кода

Живой пример сборки

Удаление шума из модулей — это только одна из задач LMD
Спасибо, теперь, наконец-то понятно.

Честно признаться, думал, что нашел что-то интересное, оказывается — нет.
Посмотрел более пристально на кол LMD, т.е. там уже используется XHR?

Если так, то смысла в этом топике нет вообще.
Для загрузки LMD-модулей с сервера — да.

На данной стадии LMD не патчит код с сервера — для этого нужен какой-либо парсер, который сможет отличить модуль, состоящий из одной FD/FE(который не нужно патчить) от модуль=код(нужно патчить), а это доп код для асинхронного загрузчика (добавлю в будущем, чтобы было меньше телодвижений для разработчика).

А так LMD умеет все, что и все лоадеры + свои штуки
Сделал MAIN UPDATE в начало топика, до хабраката.
Если интересно решение под node.js то node-browserify лучшее что может быть ИМХО
Sign up to leave a comment.

Articles