建议每页只有一个文件`.js`?

时间:2011-11-21 18:23:05

标签: javascript asp.net-mvc-3 jquery razor

我读过几篇文章说不建议在页面中放置javascript代码。

我想听听你的意见。 如何处理特定于该页面的代码?

样品

在我的 Project.cshtml 中,我有:

<script type="text/javascript">
    $(document).ready(function () {
        $('.project-status').parent('a').click(function (e) {
            e.preventDefault();
            DoSomething();
        });
    });
</script>

拥有 myfunctions.js 文件:

function DoSomething() {
    alert('test')
}

在我项目的每一页上,这种情况都会重演。

问题

您创建一个文件.js并将所有页面的所有javascript放在那里?

或者每页制作一个文件,并在页面上引用该文件?

或者在页面本身中放置特定于页面的js代码?

我们想要解决的问题

我有这个问题因为我遇到了以下问题:

在我的申请中,我有:

Project.cshtml

点击链接后,通过ajax将页面 ProjectPhotos.cshtml 加载到div#photos

问题是在我的页面 ProjectPhotos.cshtml 上有脚本:

<script type="text/javascript">
    $(document).ready(function () {
        $('.project-status').parent('a').click(function (e) {
            e.preventDefault();
            DoSomething();
        });
    });
</script>

由于此页面是通过ajax加载的,因此该脚本不会出现在HTML标记中。

如果此脚本位于单独的JS文件中,请单击该链接,我可以动态加载该文件。

谢谢大家的帮助!

2 个答案:

答案 0 :(得分:2)

这取决于。如果脚本相当小,将文件连接成一个更好是因为减少了连接数(浏览器通常只使用几个连接)。

但是如果脚本很大,并且所有页面都不需要脚本,那么最好将其拆分。但最好每页只有一个文件。

在浏览器中尝试这两个选项并禁用/清空缓存并测试...

答案 1 :(得分:0)

可能最好的方法是将所有内容放在一个文件中,原因有两个。一次维护更容易,只有一个脚本可以处理而不是搜索七个。第二,一旦加载了脚本,它就会被缓存。这意味着它已准备好用于所有其他页面。假设你没有对每个页面来说都很大的脚本,那么开销并不是那么多。

相关问题