Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   require как в ноде (https://javascript.ru/forum/project/25840-require-kak-v-node.html)

Nekromancer 20.02.2012 18:59

Цитата:

Сообщение от FINoM
Значит, если используются модули, значит их нужно сохранять их в локальном хранилище, так?

Нет.
Цитата:

Сообщение от FINoM
А ничего, что нужно сперва смотреть задачу, уже потом решать, как её решать, а не наоборт?

Что?

FINoM 20.02.2012 19:00

Думать, как её решать. В спешке писал.
Цитата:

Сообщение от Nekromancer
Нет.

Ну и что ты мне пытаешься доказать?

Nekromancer 20.02.2012 19:08

Цитата:

Сообщение от FINoM
Ну и что ты мне пытаешься доказать?

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

FINoM 20.02.2012 19:12

Цитата:

Сообщение от Nekromancer
Что же все такие эмоциональные пошли. Ничего я тебе не доказываю, вы просто вертитесь вокруг провокационной фразы пытаясь доказать, что то в ответ, подкрепляя это предположениями.

(Теперь моя очередь) Что?

FINoM 08.05.2012 21:17

Развил сабж: http://pastebin.com/zWUcBare
Теперь можно запрашивать модули кучей:
require(['m1', 'm2']);
Если не использовать коллбек, то объекты просто конкатенируются. Например:
// m1
this.method1 = function(){};
this.method2 = function(){};

// m2
this.method3 = function(){};
this.method4 = function(){};


require(['m1', 'm2']);
Возвращает объект с этими четырьмя методами.
Если использовать коллбек, то в него передаются модули в том же порядке, что и массив скриптов:
require(['m1', 'm2'], function( m1, m2 ){ ... });

Добавил пару настроек:
require.PATH = '/'; // папка, в которой лежат модули, например, /js/modules
require.POSTFIX = ''; // постфикс (ко) адреса скрипта, например, '.js' или '.module.js'
require.CONCAT_ALL = false; // в коллбек передаётся один аргумент: объект со всеми модулями сразу
// например
require(['m1', 'm2'], function( all ){ 
 // all == {method1: ...,method2: ...,method3: ...,method4: ... }
 });
В будущем все-таки добавлю кеширование и запросы к модулям на другом домене (cors)

B~Vladi 10.05.2012 15:54

Модульность это хорошо. Но все почему-то забывают, что скрипту могут понадобиться и другие данные, например HTML-разметка (шаблоны) или стили.

Поэтому нужно грузить XML-файл, в котором будут все эти данные. Что бы это было на уровне API функции require.

Это ИМХО)

FINoM 10.05.2012 17:45

Цитата:

Сообщение от B~Vladi
Поэтому нужно грузить XML-файл, в котором будут все эти данные.

С чего такая страсть к XML?
Цитата:

Сообщение от B~Vladi
Но все почему-то забывают, что скрипту могут понадобиться и другие данные, например HTML-разметка (шаблоны) или стили.

Ну я допилил скрипт только исходя из моей задачи. Остальное мне просто не нужно. Стилями управляю через less, а в ejs есть своя функция для запроса шаблонов.

B~Vladi 10.05.2012 21:29

Цитата:

Сообщение от FINoM
С чего такая страсть к XML?

Почему страсть? Просто он для этой цели подходит лучше всего.

FINoM 10.05.2012 21:31

Цитата:

Сообщение от B~Vladi
Просто он для этой цели подходит лучше всего.

Не понимаю. Я просто хотел запрашивать скрипты. Зачем мне XML?

Да и вообще, к черту XML, если есть JSON. По крайней мере 99% задач, которые решаются XML можно решить JSON. Он компактнее, читабельнее, дружит с JS.

B~Vladi 10.05.2012 22:38

Цитата:

Сообщение от FINoM
читабельнее

Это дело вкуса.
Цитата:

Сообщение от FINoM
Зачем мне XML?

Тебе может и незачем. Я вообще так сказал, мысли в слух.
Цитата:

Сообщение от FINoM
к черту XML, если есть JSON

XML тут всё же лучше. Например, можно изначально писать js, html и css в одном файле, не думая о экранировании. При этом будет корректно работать подсветка в IDE. С JSON этого не будет. Придется писать дополнительную логику соединения данных.


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