Обычно это плохая идея, потому что вы не связываете / не минимизируете свои скрипты.
@ ErikPhilips, это не правда, представьте, что я хочу определенный код JavaScript, который будет работать только в этой части. почему я должен связать его и импортировать по всему приложению? А для минимизации я могу создать свой миниатюрный файл машинописи и импортировать его в частичную часть моего блока скриптов.
представьте, что мне нужен определенный код JavaScript, который будет выполняться только в этом фрагменте.
Сценарий не будет запускаться только в этой части , он будет запускаться для всей страницы . Это код на стороне клиента, доставляемый за один HTTP-вызов (при условии обычного использования, потому что вы ничего не указали). Рассмотрим частичное:
@Model SomeModel
<div class='my-component'>
<div>
<script>
$('.my-component').css('width', model.Width);
</script>
Не может использоваться повторно, поскольку все компоненты одной страницы будут иметь одинаковую ширину независимо от модели.
Вместо этого вы можете создать один файл сценария и использовать data- * attribute для хранения информации о конфигурации и позволить единому сценарию понять это (как делают многие МНОГИЕ библиотеки, например, начальная загрузка):
<div class='my-component green' data-config='{ "width": 200, "height": 200 }'>
</div>
затем в одном файле сценария:
$(document).ready(function(){
$('.my-component').each(function(){
var $this = $(this);
var config = $this.data('config');
$this.css("width", config.width);
$this.css("height", config.height);
});
});
почему я должен связать это
Потому что тогда автоматически кэшируется браузером. Это значит меньше, чтобы загрузить каждый экземпляр. Учтите следующее:
<div class='my-component'>
<div>
<script>
// lots of scripts say 100-200 lines of it.
</script>
Каждый раз, когда клиент посещает какую-либо страницу, он должен загружать, вероятно, один и тот же точный код каждый раз, возможно, несколько раз на страницу. Это требует как пропускной способности клиента, так и пропускной способности сервера, что необязательно.
и импортировать по всему приложению?
Вы импортируете его один раз, либо глобально, либо, возможно, один раз в определенном макете. Потому что после первого раза он кэшируется .
А для минимизации я могу создать минимизированный мой машинописный файл и импортировать его в частичное внутри моего блока скриптов.
Тогда зачем вообще иметь сценарий в частичном.
Рекомендуемое чтение: Разделение вашего HTML, CSS и JavaScript