Подтвердить что ты не робот

Оптимизация требований. Vs asp.net mvc 4 Объединение и минимизация

В последнее время я видел, что Mvc 4 включает в себя объединение и минимизацию нескольких сценариев и css в одну ссылку, которая минимизирует и уменьшает время загрузки script с помощью одной конфигурации.

Requ.js r.js также является инструментом оптимизации для загрузки и минимизации script. Может ли кто-нибудь сказать мне, что лучше? Или, если require.js можно использовать так же, как инструмент minification + bundling, чтобы загрузить script в один файл или нет? как и Mvc 4?

Я предпочитаю использовать require.js для загрузки AMD, поэтому думаю, чтобы применить концепции идеи минимизации Mvc 4, если она доступна в require.js как загрузка одного URL для скриптов и CSS для оптимизации и минимизации.

Может кто-нибудь поместить некоторые идеи и огни в эту тему?

4b9b3361

Ответ 1

Require.js - это инструмент на стороне клиента, который позволяет клиенту запрашивать только необходимые ему сценарии. Часто в приложении MVC каждый script заканчивается добавлением в файл _layout.cshtml, и не слишком много мыслей вкладываем в то, что нужно каждому контроллеру. Require.js позволяет вам думать о том, что нужно каждому модулю для запуска.

r.js требует node или java, и это инструмент на стороне сервера, который несколько похож на набор и минимизацию MVC4. r.js работает вместе с требованием попробовать и минимизировать часто используемые пакеты и отправлять их в виде пакета. Но, связывая и упаковывая их, вы отправляете их потенциально, прежде чем script "требует" их.

Интересно, что, связывая вас, вы почти побеждаете цель AMD. т.е. - вы объединяете целую кучу зависимых скриптов в один файл, вместо того, чтобы позволить require.js сортировать, какие из них нужны, и делать запрос, когда и если он им нужен.

Хорошая ссылка на интеграцию require и mvc: http://www.stefanprodan.eu/2012/09/intro-requirejs-for-asp-net-mvc/ - обратите внимание, что она не использует связывание.

Итак, для меня - я бы подумал, что минимизировать отдельные файлы (и расслоить/минимизировать css) и позволить потребовать его работу, как это необходимо для поддержки AMD.

Ответ 2

В моем конкретном случае (и многих других, которые я встречал ранее) нет смысла выполнять дополнительную нагрузку на сервер с отдельным запросом только для загрузки 1-3kb script или файла стиля.

  • Как упоминалось, такой запрос использует серверные ресурсы, которые обычно ограничены
  • Требуется время для загрузки, гарантированное отставание 50-200 м.
  • Чем больше файлов, тем больше вероятность того, что один из них не сможет выполнить загрузку из-за проблемы с подключением.
  • Существует также накладные расходы с количеством кода шаблона, необходимого для упаковки всего в модули.

Похоже, что гораздо эффективнее и безопаснее загружать даже огромные 5mb (что нереально) в комплекте script один раз и загружать его позже из кеша. Используя GZip, вы сжимаете свой 5 мб текста в 200 кбайт двоичных данных, что намного меньше, чем количество графического содержимого, которое средний сайт использует для каждого запроса.