JavaScript-файл ASP.NET, встроенный в DLL с помощью GZIP - PullRequest
0 голосов
/ 16 апреля 2010

У нас есть несколько довольно больших файлов JavaScript, встроенных в одну библиотеку ресурсов скрипта. Затем он используется несколькими проектами посредством ссылки и включения страницы через диспетчер сценариев ASP.NET. Это делает вещи красивыми и аккуратными на наших страницах ASP.NET и требует очень мало усилий для интеграции в новые проекты.

Проблема в том, что некоторые из этих файлов сценариев имеют довольно большой размер (около 100 КБ) и требуют времени для загрузки. Запустив minify для них перед встраиванием, это сильно уменьшается (около 70 КБ), но недостаточно. То, что мы хотели бы сделать, это GZIP файлы, прежде чем они будут встроены. Однако простое сжатие файлов вызывает синтаксические ошибки, поскольку содержимое не разархивируется. Когда встраивается ресурс, в AssemblyInfo применяется тип содержимого «text / javascript», но мы не можем найти способ указать кодировку содержимого.

Есть ли способ заставить это работать без необходимости писать httpmodule / handler (что означало бы изменение конфигурации для всех потребляющих проектов)?

1 Ответ

0 голосов
/ 23 апреля 2010

Хорошо, похоже, из-за множества попыток, отсутствия ответов и большого количества поисков в Google, HttpModule - единственный способ приблизиться к этому.В попытке сохранить простоту настройки я настроил HttpModule внутри той же библиотеки DLL, содержащей файлы сценариев, как показано ниже.

Упрощенная структура DLL

  • \ ScriptMinified \ *. Js [Встроенный ресурс] (только минимизированный)
  • \ ScriptCompressed \ *. Gz[Встроенный ресурс] (сжатый и сжатый)
  • \ ScriptDebug \ *. Js [Встроенный ресурс] (необработанный, несжатый и закомментированный)
  • MyScriptManager.cs
  • MyHttpModule.cs

Единственной дополнительной работой является запись в веб-конфигурации потребителя для включения модуля.Кроме того, я сделал вызов инициализации в MyScriptManager, который включает теги сценариев, чтобы определить наличие / режим нового модуля http и предоставить gziped, отладочную или свернутую версии по мере необходимости.Это означает, что нам не нужно перекодировать или настраивать какие-либо старые проекты, чтобы они работали, так что достигается практически тот же результат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...