【问题标题】:JavaScript and jQuery only needed for certain pages只有特定页面需要 JavaScript 和 jQuery
【发布时间】:2013-10-02 17:20:16
【问题描述】:

我有一个 C#、MVC 网站,我希望将网站所需的所有 JavaScript/jQuery 包含在一个文件中,但某些 JavaScript/jQuery 仅在某些页面上需要。

例如,当前在 JavaScript 文件中,我有如下代码 -

$(document).ready(function () {

    $('#myId').click(function () {
        doCoolStuff();
    });

});

上面的语句在每一页上都执行,但只需要一个。让 JavaScript/jQuery 仅在需要它的页面(或多个页面)上运行的最佳方法是什么?

【问题讨论】:

  • 从你整个网站使用的文件中删除,放到你要使用的文件中
  • 你为什么只希望你的 JS 在 1 个文件中?您将拥有一个数百行的文件,维护它有很多困难。
  • 该站点可能有 10 个页面,每个页面可能需要一些仅适用于它的 JavaScript。所以我可以有十个文件(这听起来不太好)。让 JavaScript 只适用于每个页面上执行的一两个页面是不是很糟糕?
  • 无处不在的javascript可以转到“main.js”。然后,如果您有特定的功能,一个好方法是将它们放在单独的文件中。这样,您将能够更快地找到您的函数,并且还能够重复使用它们

标签: c# javascript asp.net-mvc razor


【解决方案1】:

您可以在需要时使用Sections 将项目包括在内,并将其设为不需要(但在存在时包括在内)。

_Layout.cshtml

@* ... *@
@RenderSection("Scripts", required: false)
@* ... *@

SomeView.cshtml

@* ... *@
@section Scripts
{
    @* direct inclusion *@
    <script>
        $(function(){
            // your code here
        });
    </script>

    @* or file reference *@
    <script src="@Url.Content("~/Content/alternate.script.js")"></script>
}
@* ... *@

【讨论】:

  • 真的希望投反对票的人有骨气并提供理由。
  • 这似乎不是问题的答案。这家伙只想要一个包含他所有 javascript 的文件。 (虽然,我会按照你回答的方式做​​)
  • 他不希望单个文件包含他的 javascript,而是将他的 javascript 包含在单个页面上。
  • 我希望将站点所需的所有 JavaScript/jQuery 包含在一个文件中。我认为这是做事的标准方式。没有?
  • “我真的希望那些被否决的人有骨气并提供一个理由。”
猜你喜欢
  • 2011-12-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-29
  • 1970-01-01
  • 2022-08-12
  • 1970-01-01
  • 2015-05-26
  • 2013-08-05
相关资源
最近更新 更多