Хотя я почти уверен, что ответ на этот вопрос будет зависеть от браузера, определяет ли какой-либо из браузеров поведение при использовании нескольких тегов с одинаковым атрибутом src?
Например ...
<script src="../js/foo.js"></script>
...
<!-- what happens here? -->
<script src="../js/foo.js"></script>
Причина, по которой я задаю этот вопрос в первую очередь, заключается в том, что в моем конкретном случае я использую частичные представления в приложении ASP.NET MVC, в котором используется JQuery. Все файлы JQuery JS включены в основной файл шаблона через теги сценария. Я бы предпочел добавить теги сценария в файлы частичного просмотра, чтобы в случае их использования вне контекста основного шаблона они автоматически включали все необходимые файлы JS и не полагались на другое представление или шаблон для их включения. Однако я определенно не хочу, чтобы файлы JS передавались клиенту несколько раз, или любые другие побочные эффекты, которые могут негативно повлиять на работу пользователя.
Сейчас я думаю, что большинство, если не все основные браузеры (FF, Safari, IE, Opera) будут кэшировать файл JS при первом его использовании, а затем при последующих тегах скрипта браузер будет использовать кэшированная копия, если она доступна, и если срок ее действия не истек. Однако поведение кэширования обычно можно изменить с помощью конфигурации браузера, поэтому не представляется слишком «безопасным» полагаться на любое поведение кэширования.
Должен ли я просто принять тот факт, что мои частичные представления будут зависеть от других шаблонов или представлений, включая соответствующие файлы JS?