В настоящее время я использую Angular с ng-routes, ng-table и ng-animate. Я также использую другие библиотеки, такие как jQuery и Modernizr. Наконец, у меня есть свой собственный javascript, который может быть несколькими файлами.Самый эффективный способ загрузки браузером ресурсов
Так что мои проекты загрузить длинный список ресурсов, как это:
<script type="text/javascript" src="/lib/jquery.min.js"></script>
<script type="text/javascript" src="/lib/modernizr.min.js></script>
<script type="text/javascript" src="/lib/angular.min.js"></script>
<script type="text/javascript" src="/lib/angular-route.min.js"></script>
<script type="text/javascript" src="/lib/angular-animate.min.js"></script>
<script type="text/javascript" src="/js/custom.js"></script>
Я знаю, что я могу ускорить свои проекты за счет сокращения HTTP вызовов и сжатие всех файлов.
Я использую CodeKit, который дает возможность импортировать JS-файлы друг в друга и скомпилировать их в один сжатый файл. Если я сделаю это для приведенного выше списка я бы тогда просто загрузить один файл, как это:
<script type="text/javascript" src="/js/main.min.js"></script>
Единый HTTP вызов, а не 6+, и весь код минимизирован. Проблема здесь в том, что один файл 500kb + и будет намного больше в полном проекте, возможно, более 1 Мб.
- Означает ли это, что файл не будет кэшироваться браузерами, потому что он слишком велик?
- Уязвимы ли у угловых или других библиотек какие-либо проблемы при компиляции в этом формате? (консоль выдает ошибки, если файл .map находится не в том же каталоге)
- Уверен, что файл 500kb + по-прежнему занимает много времени, так что это действительно увеличит время загрузки?
Как я вижу, он должен дождаться загрузки всего этого большого файла, прежде чем он сможет что-либо сделать. Если файлы являются отдельными, они могут начать выполнение скрипта сразу после каждой загрузки.
500kb после уточнения? это огромное, для тех, что вы включили до сих пор. –
Одним из ключевых преимуществ является то, что вы уменьшаете количество сетевых запросов. – Blazemonger
@KevinB 'angular.min.js' на своем собственном 122kb. – Coop