Mam problem z RequireJS i Modernizatorem.Dołącz Modernizator do RequireJS i zmodernizuj go w znacznikach head.
Chcę, aby zasób Modernizatora był na głowie. I wszystko inne w ciele. Powodem jest to, że Modernizr musi zrobić kilka rzeczy przed DOMContentLoad. Chcę móc ładować moduł Modernizr do innych modułów przy użyciu RequireJS. Jak mogę to zrobić zarówno w środowisku programistycznym, jak i produkcyjnym? Używam requirejs, który pobiera wszystkie zależności i minimalizuje wszystkie zasoby. A kompilacja typu "yeoman" zastępuje <script data-main="scripts/main" src="scripts/vendor/require.js"></script>
wersją minified.
pod tagiem ciała:
<!-- build:js ikl.app.js -->
<script data-main="scripts/main" src="scripts/vendor/require.js"></script>
<!-- endbuild -->
<script>
requirejs.config({
paths: {
'jquery' : 'vendor/jquery',
'handlebars' : 'vendor/handlebars',
'ember' : 'vendor/ember',
'ember-data' : 'vendor/ember-data',
'modernizr' : 'vendor/modernizr' // This should be removed
},
baseUrl: 'scripts',
shim: {
'jquery' : {
exports : 'jQuery'
},
'ember': {
deps: ['jquery', 'handlebars'],
exports: 'Ember'
},
'ember-data': {
deps: ['ember'],
exports: 'DS'
},
'handlebars': {
exports: 'Handlebars'
},
'modernizr': {
exports: 'Modernizr'
}
}
});
require([
'modules/system/controllers/system.controller',
'jquery',
'ember',
'ember-data',
'handlebars',
'modernizr'
],
function(systemController) {
systemController.renderView();
}
);
</script>
Dlaczego nie wystarczy załadować modernizr synchronicznie w elemencie skryptu w głowie? Najprawdopodobniej chcesz, aby strona oczekiwała na uruchomienie Modernizr, aby wszystkie klasy CSS itp. Były obecne i nie otrzymasz brzydkich "skoków w stylu", ponieważ nagle niespodziewanie wkradają się różne klasy css. –
Występuje wzrost wydajności posiadania go na znacznik body. Wykazuje HTML szybciej, niż stosuje logikę JS. I tak mało jak to możliwe Logika JS na głowie – einstein
flash-of-unstyled-content to przekonujący argument, aby nie renderować kodu HTML przed załadowaniem samego Modernizr. Pomyśl jeszcze raz. –