Разница между менеджером скриптов и менеджером скриптов инструментария - PullRequest
21 голосов
/ 14 июня 2011

Каковы различия между ScriptManager и ToolkitScriptManager?Я нашел только одну убедительную причину: ToolkitScriptManager улучшает производительность страницы.Если так, то зачем использовать ScriptManager?

1 Ответ

28 голосов
/ 10 ноября 2012

Прежде всего: если вы используете ASP.NET 3.5 и элементы управления из AJAX Control Tookit, то вы должны использовать ToolkitScriptManager, а не ASP.NET ScriptManager. Это ограничение связано с тем, что диспетчер сценариев инструментария добавляет обновленные сценарии Ajax, и без этого большинство элементов управления из библиотеки инструментария Ajax Control не будут работать.

Если вы используете ASP.NET 4.0 (4.5), у вас есть выбор использовать ScriptManager или ToolkitScriptManager.

В основном, главная особенность ToolkitScriptManager заключается в том, что он может комбинировать ресурс js, добавленный на страницу, используя коллекцию ScriptReference. Эти js-файлы должны быть встроены в сборку, и для этой сборки необходимо добавить атрибут сборки ScriptCombine. Основная проблема заключается в том, что вы не можете контролировать, как комбинируются сценарии, и после того, как вы попытаетесь объединить свои собственные сценарии, у вас может возникнуть много проблем (у меня был опыт использования этой функции, и в результате мы отказались от объединения наших сценариев, используя этот подход).

Суть в том, что в настоящее время стандартный диспетчер сценариев имеет возможность комбинировать сценарии с использованием составного набора сценариев. Эта функция более гибкая, и вам легче контролировать, как сценарии комбинируются на ваших страницах. Более подробную информацию можно найти по следующей ссылке: http://weblogs.asp.net/infinitiesloop/archive/2009/11/23/asp-net-4-0-scriptmanager-improvements.aspx.

Кроме того, обратите внимание, что, насколько я помню, если вы используете ToolkitScriptManager, вы не сможете использовать функцию CompositeScript, даже если учесть, что ToolkitScriptManager является производным от ScriptManager.

Итак, в ASP.NET 4.0 разница не так велика, и лучше избегать использования ToolkitScriptManager. Основная причина в том, что используя стандартную функцию CompositeScript, вы получаете больше контроля над тем, как комбинируются скрипты, и можете оптимизировать рендеринг страницы.

Для ASP.NET 3.5 у вас нет выбора, если вы хотите использовать элементы управления из библиотеки Ajax Control Toolkit.

Редактировать

С последними изменениями в библиотеке инструментария управления ajax они приступают к обновлению скриптов MS Ajax, и поэтому некоторые элементы управления не могут работать без добавления ToolkitScriptManager.

...