Есть ли причина, по которой MicrosoftAjax.js не минимизируется? - PullRequest
18 голосов
/ 24 июня 2009

Я сжимаю свой собственный JS с помощью YuiCompressor, но есть ли причина, по которой MicrosoftAjax.js не минимизируется? Или есть какой-то параметр, чтобы сказать запустить сжатую версию (если есть сжатая версия). Или мне нужно декомпилировать его и самому минимизировать ресурс скрипта?

Ответы [ 6 ]

23 голосов
/ 13 июля 2009

Я удивлен этими вводящими в заблуждение ответами.

ASP.NET AJAX всегда предоставлял как отладочную, так и сжатую версии MicrosoftAjax.js. Комбинация параметра отладки web.config и свойства ScriptManager ScriptMode определяют, на какой сценарий ссылаются.

Кроме того, вы можете использовать параметр "retail" для принудительного сжатия сжатых сценариев независимо от того.

7 голосов
/ 16 июля 2009

Все скрипты в System.Web.Extensions минимизированы - есть две версии каждой, как указывает превосходный ответ Дэйва Уорда. ScriptManager по умолчанию будет использовать отладочную версию, когда web.config находится в режиме отладки. Переверните его, чтобы выпустить с настройкой розничной торговли или debug = "false", и посмотрите на сценарий.

Кроме того, сценарии, обслуживаемые через WebResourceHandler или ScriptResourceHandler, фактически кэшируются. Они кэшируются наилучшим из возможных способов - навсегда, поэтому им не нужно даже 301 при будущих посещениях. Строка запроса такая, какая есть, потому что она содержит зашифрованные данные. Он зашифрован, поскольку содержит информацию о ресурсе сценария, включая имя сборки, а также потому, что предотвращает атаки переполнения кэша.

Не ищу представителя здесь, просто хотел дать больше деталей.

3 голосов
/ 25 июня 2009

См. http://www.codeproject.com/KB/aspnet/AspNetOptimizer.aspx, вам нужно

enableScriptMinification="true"

и добавьте MicrosoftAjax.js в список

1 голос
/ 25 июня 2009

Что бы вы предпочли:

  1. MicrosoftAjax.js уже сжат, уже запутан.
  2. MicrosoftAjax.js поставляется несжатым и открытым, так что вы можете прочитать и понять его самостоятельно.
0 голосов
/ 25 июня 2009

РЕДАКТИРОВАТЬ: На мой взгляд, на момент написания этого ответа у меня не было опыта работы с .NET 3.5; Теперь я понимаю, что они сделали несколько столь необходимых улучшений в этой области.


Очевидно, MS не считает размер файла JavaScript очень важным (что безумие). Кроме того, основываясь на моем опыте работы с MS Ajax, они также вводят несколько разметок SCRIPT (иногда более 10) в разметку. Эти теги содержат скрипты из обработчика WebResource.axd. Поэтому нужно сделать десять или более запросов только для того, чтобы получить необходимый Javascript для запуска страницы! Просто чтобы добавить нелепости, они прикрепляют сумасшедшую строку запроса к URL-адресу обработчика, что, вероятно, предотвращает кэширование сценария браузером.

Это безумие было достаточным поводом для того, чтобы я полностью отказался от MS Ajax и переключился на jQuery , который является гораздо лучшей библиотекой, особенно , поскольку Visual Studio теперь имеет Intellisense для JQuery .

0 голосов
/ 24 июня 2009

Я могу только предположить, что это было оставлено как есть для простоты понимания, и, как вы уже намекали, я знаю причину, по которой вы не можете сжать это самостоятельно, в конце концов, это всего лишь JavaScript - хотя MS может как и вы, если верить иначе, они не окропляют его магической пылью пикси, чтобы сделать его другим! :)

[И давайте посмотрим правде в глаза; MS никогда не боялась размера своего кода, не так ли?]

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