Есть ли какая-либо причина, почему MicrosoftAjax.js не уменьшен?

! инвертирует значение и дает противоположное логическое значение:

!true == false
!false == true
!1 == false
!0 == true

--[value] вычитает один (1) из числа, а затем возвращает то число, с которым нужно работать:

var a = 1, b = 2;
--a == 0
--b == 1

Таким образом, !--pending вычитает одно из ожидающих, а затем возвращает значение, противоположное его значению истина / ложь (независимо от того, является ли оно 0).

pending = 2; !--pending == false 
pending = 1; !--pending == true
pending = 0; !--pending == false

И да, следуйте подсказке. Это может быть распространенной идиомой в других языках программирования, но для большинства декларативного программирования на JavaScript это выглядит довольно чуждо.

18
задан nickytonline 25 June 2009 в 14:17
поделиться

6 ответов

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

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

Кроме того, вы можете использовать параметр «розничная торговля» , чтобы принудительно использовать сжатые сценарии независимо от того.

23
ответ дан 30 November 2019 в 07:50
поделиться

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

  1. MicrosoftAjax.js поставляется в сжатом, запутанном виде.
  2. MicrosoftAjax.js поставляется в несжатом виде и открывается, поэтому вы можете прочитать и понять его самостоятельно.
1
ответ дан 30 November 2019 в 07:50
поделиться

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

enableScriptMinification="true"

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

3
ответ дан 30 November 2019 в 07:50
поделиться

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


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

Это безумие было достаточной причиной для меня полностью отказаться от MS Ajax и переключиться на jQuery ,

0
ответ дан 30 November 2019 в 07:50
поделиться

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

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

-2
ответ дан 30 November 2019 в 07:50
поделиться

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

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

Не ищу здесь представителя, просто хотел дать более подробную информацию.

7
ответ дан 30 November 2019 в 07:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: