我的整个网站是一个 Ajax 网站,因此我的所有视图(布局除外)都可以正常加载或通过 ajax 操作链接加载。
如果我将 Javascipt 文件与部分视图一起放入,那么所有代码都会按预期工作,但脚本会被多次加载(从而使用户下载更多脚本,所有脚本也不会由于某种原因被缓存)。
如果我将脚本文件放入布局中,那么它们只会加载一次,但是如果加载了部分视图,则该部分视图的 JS 代码显然不起作用,因为当部分视图未加载时脚本已经加载呈现。
我的问题是,如何使脚本仅加载一次,但又以某种方式让它们影响部分视图?
索引视图:
<script src="/Scripts/Build/module.min.js"></script>
<script src="/Scripts/Build/upload-index.min.js"></script>
Layout:
<li>
@Ajax.ActionLink("Upload", "Index", "Upload", new {Area = "Music"}, new AjaxOptions {HttpMethod = "GET", UpdateTargetId = "body-wrapper", InsertionMode = InsertionMode.Replace, OnSuccess = "updateHistory", AllowCache = true }, new {@class = "nav-link"})
</li>
You can see the scripts getting loaded multiple times if they are in the partial view: