Я пытаюсь определить лучший способ структурировать свое приложение, чтобы я не разбрасывал много javascript повсюду.
У меня есть приложение ASP.NET MVC с представлением, которое загружает частичное представление sllooooowwwww, используя подход Майкла Кеннеди к Повысить воспринимаемую производительность веб-сайтов ASP.NET MVC с помощью асинхронных частичных представлений. Само частичное представление отображает сетку DataTables (с собственными файлами CSS/JS), а также конфигурацию на основе Javascript. для самой сетки (форматирование столбцов, сортировка по умолчанию, настройка редактора и т. д.).
Мой вопрос в том, что это чистый способ структурировать и поддерживать все это? Здесь задействовано как минимум 3 разновидности скриптов (CSS и/или JS):
- JS в основном представлении, которое загружает частичное представление.
- Файлы CSS/JS для таблиц данных
- JS внутри частичного представления, которое работает на
$(document).ready()
и настраивает эту конкретную сетку.
Я могу контролировать (в основном представлении), где CSS/JS визуализируются, используя Razor @section
для скриптов/стилей (элемент № 1 выше). Однако частичное представление не может использовать преимущества функциональности @section
, поэтому любой CSS/JS в частичном представлении внедряется в середину страницы. Меня это не очень устраивает, потому что тогда визуализированный HTML выглядит ужасно, а CSS/JS отображается в середине основного представления. Я знаю, что такие вещи, как Cassette, могут помочь с пунктом № 2, когда все CSS/JS хранятся во внешних файлах.
Но как насчет элемента № 3, где у меня есть CSS/JS, который очень специфичен для этого частичного представления? Это могут быть такие мелочи, как присоединение обработчиков событий щелчка для представления или настройка подключаемых модулей JQuery, но означает ли это, что я должен выделить это в другой файл JS? Мне не нравится разделять эти вещи, если мне это не нужно, особенно конфигурацию сетки для каждого частичного представления.
В моем случае у меня есть приложение с несколькими представлениями, содержащими эти частичные представления, которые отображают сетки, и ни одна из сеток не содержит одинаковый набор столбцов, поэтому конфигурация JS для каждой сетки отличается, которая работает на $(document).ready()
.