如何为Jekyll页面加载外部脚本?

时间:2018-06-14 17:21:56

标签: javascript asynchronous jekyll github-pages script-tag

我正在GitHub页面上建立一个Jekyll网站。我有一个需要一点JavaScript的特定页面。此页面的标题和正文标记由我正在使用的主题控制。我想在外部脚本文件中维护这个JavaScript,而不是在页面中间使用原始脚本。

鉴于现代网络技术,使用异步脚本标签加载文件是否有任何重大问题?生成页面后,此标记将显示在正文内容中,但据我所知,建议不在主体中加载外部脚本最初来自加载速度问题,并且在某种程度上不再对异步有效。该脚本很小,可以控制非关键功能。

基本上:

<body>
  ...page content...
  <script src="/assets/js/myscript.js" type="text/javascript" async=""></script>
  ...page content...
</body>

我可以覆盖主题布局以直接访问标题并更传统地执行此操作,但我希望尽可能避免这种情况。是否有另一个建议使用Jekyll的小型一次性脚本?

1 个答案:

答案 0 :(得分:2)

最终,Jekyll markdown转换为标准HTML,因此在HTML正文中加载小型,非关键async外部脚本,这个问题简化为&#34;在性能方面是否安全? &#34;

有关async工作原理的图表,请参见https://stackoverflow.com/a/39711009。为清楚起见,我将在下面复制它。它向我们展示了与HTML解析并行请求资源,使得性能大致相当于运行内联JS。因此,如果脚本很小(假设它很小,则表示它不是资源密集型,而不是代码长度较小),无论您在何处放置,性能损失都可以忽略不计。

如果脚本不重要,最好尽可能将它放在正文的末尾,以便首先加载关键HTML和其他资源,因为HTML解析在执行时仍然暂停脚本。

enter image description here

Google Chrome Lighthouse工具可用于指示网页的效果,并显示网页的哪些部分对性能造成最大影响,而我的体验往往是图像。您可以通过打开Chrome开发工具并转到审核标签来使用这些工具。