【问题标题】:Which is preferable: redundant HTML layouts, or unnecessary JavaScript execution?哪个更可取:冗余的 HTML 布局,或不必要的 JavaScript 执行?
【发布时间】:2023-04-03 03:10:01
【问题描述】:

我正在使用 Jekyll 构建一个在所有页面上都具有一致样式的网站。大多数页面都使用名为default.html 的布局文件设置样式。但是,在一个特定页面上,我需要使用通过 a rel 标签调用的 JavaScript。在所有其他方面,此页面的格式与其兄弟页面相同。

在这种情况下,哪个更可取:

  1. 创建一个与default.html 几乎相同但包含必要的JavaScript 的冗余布局文件,或者;
  2. 将 JavaScript 放入 default.html 并在所有其他页面上执行无用的执行?

在性能方面——在只有一个页面需要 JavaScript 的简单示例中,我假设第一个替代方案是两个弊端中的较小者,因为您只发出一个额外的 HTTP 请求,而不是很多,许多无用的 JavaScript 调用。但是,随着规模的扩大,情况并非总是如此。

那么,在使用 Markdown 模板管理的单个页面上处理 JavaScript 执行的最佳方式是什么(性能方面或风格方面)?

【问题讨论】:

    标签: javascript html performance jekyll


    【解决方案1】:

    如果必须包含 Javascript,您可以为额外页面的内容提供一个为 true 的变量。

    ---
    layout: default.html
    incScript: true
    ---
    

    然后,在您的 default.html 中,使用 Liquid 有条件地包含脚本:

    {% if page.incScript %}
      ... include script here
    {% endif %}
    

    【讨论】:

    • 太棒了!我知道必须有一种方法可以通过设计来处理这种情况。如果我对 Liquid 的理解是正确的,则条件是在构建过程中处理的,因此对客户端没有性能影响。
    • 是的,Liquid 在构建过程中由 Jekyll 离线处理。对客户端没有任何性能影响。
    【解决方案2】:

    我认为首先,因为这样您就不会在不需要您的代码的地方出现任何错误。 所以把javascript放在像“yourfile.js”这样的文件中,并用<script src="/yourfile,js"></script>调用它

    应该是最好的

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-19
      • 1970-01-01
      • 2010-09-14
      • 1970-01-01
      • 2012-04-30
      • 1970-01-01
      • 1970-01-01
      • 2011-03-15
      相关资源
      最近更新 更多