【问题标题】:Where should I put my JavaScript - page or external file?我应该把我的 JavaScript - 页面或外部文件放在哪里?
【发布时间】:2010-11-09 06:36:27
【问题描述】:

在 VS 2008 中,我有一个包含一个母版页的 ASP.NET 内容页面。我想为此页面添加用于客户端验证等的 JavaScript 函数。我的问题是:

  1. 我应该将这些脚本写在单独的.js 文件中,还是嵌入到.aspx 文件中。
  2. 此选择是否会影响网站的性能?
  3. 编写 JavaScript 文件有什么规则吗?

【问题讨论】:

    标签: asp.net javascript asp.net-2.0 code-organization


    【解决方案1】:

    我会说,您应该将 javascripts 函数创建到单独的 .js 文件中,并将它们链接到母版页或需要的 .ASPX 中。

    假设您“复制并粘贴”每个 .ASPX 中的 javascripts 函数,然后当加载该 .ASPX 文件时,渲染该页面将花费更长的时间,因为它还需要渲染 javascript 函数。如果您将其维护到单独的 .js 文件中,则浏览器只会下载一次,如果它较新或以前不存在。

    你也可以缓存那些.js文件,这样浏览器就不会每次都重新加载了。

    另一个好处是当您需要对 .js 文件进行一些更改时,您只需要将其集中在一个文件中进行修改,而不是通过众多 .ASPX 进行“查找和替换”

    【讨论】:

      【解决方案2】:

      如果 JavaScript 函数可能在用户将访问的多个页面上使用,您应该考虑缓存的功能。在这种情况下,您应该将它们放在(如果可能)一个外部 .js 文件中。这样,文件只会从服务器获取一次,然后保留在浏览器缓存中。您的 HTML 页面会变小(对于较大的 JS 库来说尤其如此)。

      如果函数(通常是验证规则)仅适用于单个页面,则外部 JavaScript 文件会导致额外的 HTTP 请求,从而导致用户对您的页面体验的短暂阻塞。这里最好将JS嵌入到HTML文件中。

      有关更多详细提示,请参阅Yahoo!'s tips

      干杯,

      【讨论】:

        【解决方案3】:

        这取决于您的使用情况。如果它是特定于页面的功能,则尝试在页面本身中实现它。如果它被许多页面使用,则将其放入 js 文件中。

        会不会影响性能 网站?

        是的,可以。如果您有一个包含数千行代码的 js 文件,并且在一个页面中,您只需调用 js 文件中的一个函数。如果您为此文件引用文件,则下载整个文件应该会浪费带宽。对于这种情况,您可以在同一页面本身内编写函数。

        另外一边浏览器可以缓存一个js文件。因此,对于后续请求,如果文件存在于缓存中,则不会再次下载。但是在页面本身中编写 JavaScript 的情况下,每次页面加载时都会下载其所有内容。

        【讨论】:

        • 0.02 美元,基于自发布此答案以来的发展。在页面中放置一个函数只会节省带宽,直到用户请求页面一定次数。在那之后,缓存会更好。此外,您需要在每次页面加载时为这些位提供服务。通过缩小,外部可能更有意义,即使您只使用文件中的部分代码。最近的 Chrome 开发工具可以识别未使用的代码和 js 模块,您可以非常精细和具体地发送内容。
        猜你喜欢
        • 1970-01-01
        • 2016-05-23
        • 1970-01-01
        • 2010-12-01
        • 2018-09-28
        • 2019-10-04
        • 1970-01-01
        • 2020-08-11
        • 2020-09-30
        相关资源
        最近更新 更多