2015-03-26 3 views
0

Я создаю модуль javascript, который хранит некоторые функции, используемые некоторыми веб-страницами. Например:Требуется загрузить всю или часть объекта зависимости?

define(['...',...], function() { 
 
    return { 
 
     func1: function(){...}, 
 
     func2: function(){...}, 
 
     func3: function(){...}, 
 
     } 
 
});

У меня есть модуль на page1.html просто использовать func1, другой модуль на page2.html просто использовать func2, так далее. В этом случае мне интересно, требуются ли требуемые функции загрузки или загружаются весь объект.

Я намереваюсь создавать модули, которые распространяются среди веб-страниц. Если requirejs загружает весь объект, я боюсь, что потребуется больше времени для загрузки ненужных скриптов. Есть ли у вас какие-либо идеи по этой проблеме?

ответ

1

Группирование всех ваших методов в одном модуле приведет к возврату всего объекта да. Если вы хотите загружать func1 на стр. 1, func2 на стр. 2 и т. Д., Вам будет лучше объявить каждый в своем отдельном модуле и файле. Затем загрузите каждый модуль, когда это необходимо.

// func1.js 
define(['...'], function(){ 
    return { 
     func1 : function(){} 
    } 
}) 

// func2.js 
define(['...'], function(){ 
    return { 
     func1 : function(){} 
    } 
}) 

В requirejs documentation указует на отличный пример для многостраничных-приложений: https://github.com/requirejs/example-multipage

Примечания: во многих случаях лучше, чтобы фактически загрузить все ваши скрипты в одном запросе HTTP, а не делать асинхронные запросы для каждого файл в вашем приложении. Многие крупные приложения используют r.js для объединения своих скриптов в несколько файлов.