Код JavaScript в ASP.NET MVC Partial Views (ASCX) или нет? - PullRequest
4 голосов
/ 23 мая 2010

Есть ли "наилучшая практика" для размещения кода JavaScript, когда у вас есть много частичных представлений и специфический для них код JS?

Мне кажется, что я создаю кошмар обслуживания, имея много частичных представлений, а затем набор независимых файлов JavaScript для них, которые необходимо синхронизировать при частичном изменении вида. Для целей технического обслуживания, мне кажется, лучше поставить код JS с частичным представлением. Но затем я нарушаю общепринятые практики, согласно которым весь код JS должен находиться внизу страницы, а не смешиваться, а также я получаю несколько ссылок на один и тот же файл JS (поскольку я включил бы ссылку в каждый ASCX для целей intellisense).

У кого-нибудь есть идея получше?

Ответы [ 2 ]

1 голос
/ 24 мая 2010

Я не знаю, существует ли намного больше устоявшихся "лучших практик", чем те, которые вы уже указали в своем вопросе, которым вы хотели бы соответствовать.

В последнее время я принял Html Helper подход к распространенным js / jQuery-блокам, которые мне нужны для определенных сложных «элементов управления», которые требуют большой помощи ajax и UI js. В моем самом последнем случае у меня было два таких "элемента управления", и каждому требовалось 3 блока скриптов.

У меня есть такая вспомогательная схема, где я могу использовать такой синтаксис:

    <%-- // jQuery for Patron --%>
    <% =Html.MattyJq().DivListItemSingleSelector("selectPatronItem", "div#matchingPatrons",
        "patronsPrevSelectedID","PatronID") %>
    <% =Html.MattyJq().EmptyTextInputHelper("patronSearch", "patronsFilterSendEmpty") %>
    <% =Html.MattyJq().TextChangeDynamicUpdaterSelect("patronSearch","div#matchingPatrons",
        "/patrons/getpatronsitems",500,"patronsFilterSendEmpty","patron",
        "patronsPrevSelectedID","selectPatronItem") %>

У меня есть эта папка «Template» в моей папке MVC «/ Scripts», в которую я помещаю блоки скриптов, а затем отмечаю все «переменные» escape-последовательностью, так что я могу поменять местами / regex в моих переменных, которые я передал в помощники (см. выше) как params.
Таким образом, я могу повторно использовать шаблоны, и мои взгляды намного легче / чище. Там вы заметите общие параметры в помощниках - это когда, например, у меня есть имена функций js или var s, которые являются общими для более чем одного блока скрипта. Это своего рода способ «связывания» изолированных блоков скриптов.
Наконец, у меня есть общий раздел для помощников, который позволяет мне «просмотреть» полученный js / jQuery с помощью парсера, если я выберу - в моем случае я использую .NET YUI Compressor , чтобы минимизировать js в Выпуск сборок - я уверен, что вы могли бы добавить здесь некоторую логику, чтобы убедиться, что весь сценарий находится внизу страницы, если вам нравится.

0 голосов
/ 24 мая 2010

Используйте один JS и ненавязчивый javascript, чтобы проследить поведение ваших HTML-страниц.

Бросать js повсюду - такой кошмар, даже с поджигателем.

Помните, всегда программируйте так, как будто человек, который поддерживает ваш код, является жестоким психопатом. ;)

...