Я не знаю, существует ли намного больше устоявшихся "лучших практик", чем те, которые вы уже указали в своем вопросе, которым вы хотели бы соответствовать.
В последнее время я принял 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 в Выпуск сборок - я уверен, что вы могли бы добавить здесь некоторую логику, чтобы убедиться, что весь сценарий находится внизу страницы, если вам нравится.