【问题标题】:Using separate javascript file for each html page?为每个 html 页面使用单独的 javascript 文件?
【发布时间】:2011-11-17 16:25:16
【问题描述】:

通常,主页的 javascripts 比其他页面重。例如,我们将 jQuery 幻灯片放在主页面中,而在其他页面中不使用。是否需要为主页面和单个页面创建不同的 s 以仅包含运行中的 javacript 文件?

或者在第一页读取的所有javascript文件都会被缓存用于浏览网站,并且在加载单个页面时,浏览器不会读取幻灯片的javascript?

这个问题的另一种形式是:如果我将幻灯片放在每个单独的页面上,浏览器会每次都加载幻灯片 javascript 文件,还是会从缓存中读取(保存在访问者的计算机上)?

【问题讨论】:

    标签: javascript jquery html caching browser


    【解决方案1】:

    就像 florian h 所说,大多数浏览器都会缓存内容(除非正在使用开发工具)。

    如果您只在一页上使用幻灯片 javascript,我建议您将其放在单独的文件中。这样做有一个缺点,大多数情况下,http 请求加载文件所需的时间最长。

    因此,例如,如果您有一个 1mb 的 javascript 文件,并且您需要大多数页面上的所有 javascript,那么最好使用 4 个每个 250kb 的较小文件。因为您的浏览器需要执行 4 个单独的请求。

    当然,这可能会带来几毫秒的性能收益差异,因此您可能希望选择在单独的文件中执行此操作以提高可维护性。

    【讨论】:

    • 感谢您的澄清!我说的是 100kb 的 jQuery 和可能高达 100kb 的其他 jQuery 插件。显然 jQuery 应该在所有页面上。我正在考虑为所有插件制作一个自定义 js 文件。划分为四个 25kb。值得分裂吗?
    • 在开发过程中我会拆分,然后当脚本准备好用于生产环境时,我认为最好使用单个 js 文件。
    【解决方案2】:

    几乎所有浏览器都会缓存 javascript 文件,因此您不应为子页面创建不同的版本。

    但如果您有非常大的 JS 文件,那么只包含您实际需要的文件当然是合理的。

    【讨论】:

      【解决方案3】:

      所有文件都根据文件的路径缓存在浏览器中。

      如果您包含一个页面的 javascript,该文件将被缓存,并且在您浏览其他页面时不会再次下载。

      除非你想要它;)

      【讨论】:

        【解决方案4】:

        是的,js 文件将被缓存(如果没有另外说明)。

        但是,js 文件必须经过处理,并且可能包含您不需要的初始化逻辑。此外,每个加载外部 js 的脚本标签都会阻塞任何其他“http 线程”,这意味着图像、css 文件......将停止加载,直到加载 js 文件,否则您将有多个并行(同时)资源加载。

        我会为不同的页面设置不同的脚本。

        对于您的情况,这可能是一个问题,也可能不是。你应该为你的案例做一些测试,看看你是否有性能问题。如果不是为了不同的页面没有不同的脚本可能会更好。

        【讨论】:

          猜你喜欢
          • 2015-08-13
          • 2014-11-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-09-23
          • 1970-01-01
          • 2020-07-12
          • 2015-10-25
          相关资源
          最近更新 更多