【发布时间】:2013-11-04 20:40:42
【问题描述】:
我们有一个包含多个区域的 MVC 4 Web 应用程序。
网站上的所有页面都使用一个主布局视图,它包含所有 CSS 包含、渲染主体标记,然后是所有 JavaScript 库。
<head>
<link rel="stylesheet" media="screen" href="~/Content/jquery-ui-1.10.3.custom.min.css" />
..
</head
<body>
<div id="main-content">@RenderBody()</div>
<script type="text/javascript" src="~/Scripts/jquery-1.10.2.min.js"></script>
..
</body>
JavaScript 由 jquery、jqueryui 和插件等常用库组成。 还有一个 JavaScript 文件包含整个网站的自定义代码
由于只有 1 个包含数千行的大型 JavaScript 文件,因此通过检查特定 DOM 元素的存在来决定是否继续执行代码例程。
runExample = function() {
if ($(".Example").length > 0){
// execute code
}
}
..
runExample();
这当然是有问题的,因为所有文件都包含大量脚本,而有适用于所有页面的代码,大多数代码只适用于某些区域或页面。
- 有没有更好的方法来为网站拆分 JavaScript? 请记住,有条件的是自定义代码,不一定是插件
- 即使有办法为每个区域创建一个 JavaScript 文件,如何 会在主布局中引用吗?
- 是否最好在包含文件的末尾加载 JavaScript 包含文件?
- 缩小对性能有什么影响,是否有利于自定义代码文件?
任何建议将不胜感激。
【问题讨论】:
-
我不完全确定您将如何使用 MVC 完成此操作,但基本上当您想要为特定页面包含特定 js 文件时,而不是使用
-
“是否最好在包含文件的末尾加载 JavaScript 包含文件?” 对于性能,是的,但有时可维护性变得比性能更重要,此时指出将它放在标题中会更好。只是取决于您项目的要求。
标签: javascript jquery asp.net-mvc performance