2015-05-02 5 views
0

Я создаю основную одну страницу и после того, как сайт вырос и имеет основной файл js. теперь его настолько большой, что мне было бы приятно переместить загрузчик из файла main.js. Существует ли наилучшая практика загрузки некоторой магистрали (загрузчика), а затем загрузки основного файла js?Переместить предварительный загрузчик из main.js backbone

+0

Можете ли вы предоставить немного кода? Неясно, что вы подразумеваете под «предварительным загрузчиком» и «загрузчиком» .... –

ответ

1

Я предполагаю, что вы совершаете вызов API/AJAX, когда ваше приложение загружается в первый раз. Если ваша начальная загрузка включает в себя заставить пользователя ждать, пока эта начальная полезная нагрузка не будет получена вашим клиентским приложением, тогда, вероятно, лучше всего показать им «что-то».

Надеюсь, ваш погрузчик не является основной частью вашего main.js. Погрузчики обычно представляют собой довольно низкий уровень, упрощенные виды; если они вообще являются взглядами. Я видел некоторые довольно умные решения, которые используют CSS только для состояний загрузки, где все, что вы делаете, - это добавить класс загрузки в область DOM, когда выполняется запрос данных. Правила, которые Вы пишете могли бы показать слова «загрузку ...» вместе с блесной, если это намерение ... (вот некоторые) СКС

.loading.some-div { 
    position: relative; 
    &:after { 
    position: absolute; 
    content: 'Loading...'; 
    right: 0; 
    top: 0; 
    } 
} 

не советует загрузки «пра-погрузчик», а затем «main.js». Вы можете попробовать «показать» загрузчик, когда вы делаете ajax-вызовы в фоновом режиме для данных. Свяжите загрузку вашего приложения с загрузкой данных ACTUAL и т. Д.

Я также видел решения, которые отображают представление о магистрале в состоянии загрузки, а затем после того, как представление получает данные, оно будет скрывать/удалять состояние загрузки и отображение полностью отображаемого шаблона.

render: function (data) { 

    // the el is displaying 'loading...' until valid data is 
    // passed to the view 

    if (!data) { return; } 

    // when valid data is received, then the loading state is removed 
    this.$el.html(this.template(data)); 
} 

Это супер основная идея, но, надеюсь, что-то снова заставило ваши колеса вращаться. Дайте мне знать, если вы хотите поговорить об этом.