Читаю сейчас статью про модульную систему AMD в javascript
http://addyosmani.com/writing-modular-js/
и не поймут одну вещь. Вот здесь говорится, что помимо javascript ассинхронно можно подгружать css файлы:
// With AMD, it's possible to load in assets of almost any kind
// including text-files and HTML. This enables us to have template
// dependencies which can be used to skin components either on
// page-load or dynamically.
define(['./templates', 'text!./template.md','css!./template.css'],
function( templates, template ){
console.log(templates);
// do some fun template stuff here.
}
});
Но дальше идет предупреждение, что не всегда можно установить точно загрузился ли уже css или нет:
Note: Although css! is included for loading CSS dependencies in the above example, it's important to remember that this approach has some caveats such as it not being fully possible to establish when the CSS is fully loaded. Depending on how you approach your build, it may also result in CSS being included as a dependency in the optimized file, so use CSS as a loaded dependency in such cases with caution.
В чём прикол, почему нельзя установить загрузился css или нет? Если я правильно понимаю, то любой файл грузится, например, используя ajax.
Если так, то в ajax есть событие успешной загрузки файла, точнее не файла, а вообще получения ответа с данными от сервера и тогда не должно быть никаких проблем с определением загрузился ли css файл или нет. Поясните, пожалуйста, этот момент.
И второй мини вопрос. AMD позиционируется, как модульная система с асинхронной загрузкой модулей. Почему-то используя require.js мое приложение работает, модули подгружаются, но во вкладке net в фаербаге нету никаких ajax запросов на сервер. Как тогда подгружаются модули с сервера? Или для современных браузеров с поддержкой вебсокетов юзаются веб сокеты, а для старых браузеров - ajax запросы? Спасибо.