Объединение скриптов - Менеджер скриптов инструментов против CompositeScript в 3.5 - PullRequest
4 голосов
/ 26 августа 2009

Я использую инструментарий скриптов, включенный в AjaxControlToolkit на моем сайте. Этот атрибут имеет атрибут CombineScript, который указывает администратору сценариев объединять необходимые сценарии из элементов управления ajax в один файл сценария. Тем не менее, начиная с 3.5, стандартный скрипт-менеджер поддерживает «», где вы можете объединить (выбранные вручную) скрипты в один файл.

Стоит ли продолжать использовать toolscriptmanager или использовать CompositScript для увеличения производительности?

Ответы [ 2 ]

3 голосов
/ 18 сентября 2009

Два инструмента - это, по сути, два разных подхода к одной и той же цели.

Менеджер сценариев Toolkit стремится объединить все доступные файлы JS на всем сайте. Преимущество здесь в том, что его легко настроить - вы заменяете ScriptManager и отпускаете его. Недостатком является то, что если на каждой странице не используется один и тот же набор сценариев, вы заставите своих пользователей загружать чрезмерное количество кода сценария. Если ваша домашняя страница использует скрипты A, B, C, D, а внутренняя страница использует A, B, C, D, E, то, когда ваш пользователь перейдет на внутреннюю страницу, ему придется повторно загрузить содержимое A, B, C , D, потому что он будет частью другого комбинированного ресурса сценария.

Компонент CompositeScript должен быть очень разборчив в том, какие скрипты он включает. Разработчик должен проанализировать, какие сценарии используются на каждой странице, и добавить их в комбинированный сценарий. В предыдущем примере вы могли выбрать (желательно на главной странице) комбинирование A, B, C, D, но не E. Тогда ваш пользователь попадет на домашнюю страницу и загрузит A, B, C, D в один выстрел. Затем они переходят на внутреннюю страницу, уже имеют A-D в кеше браузера и должны только загрузить E.

Так что, как и во многих других вещах, это зависит от вашей архитектуры и от того, сколько усилий вы можете себе позволить. Оба они выглядят как экстремальные подходы, один со стороны include по умолчанию, второй по умолчанию исключить, и, похоже, никакого среднего пути нет. (Как бы я хотел, чтобы был один.)

РЕДАКТИРОВАТЬ: Что было нежелательно в этом ответе, который потребовал понизить голос? Пожалуйста, объясните себя с комментарием.

0 голосов
/ 09 сентября 2009

У меня сложилось впечатление, что составные сценарии ScriptManager предназначены для использования с несколькими файлами js.

<asp:ScriptManager ID="ScriptManager1" runat="server">
    <CompositeScript>
        <Scripts>
            <asp:ScriptReference Path="~/Scripts/Script1.js" />
            <asp:ScriptReference Path="~/Scripts/Script2.js" />
            <asp:ScriptReference Path="~/Scripts/Script3.js" />
        </Scripts>
    </CompositeScript>
</asp:ScriptManager>

В то время как ToolScriptManager объединил автоматически сгенерированные скрипты ресурсов. (а также другие указанные сценарии: объединение сценариев в наборе инструментов asp.net ajax )

ScriptManager позволит вам выбрать, какой файл скрипта будет объединен, что в зависимости от использования вами различных файлов на вашем сайте приведет к уменьшению количества пользовательских загрузок.

Я бы продолжил использовать ToolkitScriptManager.

...