【问题标题】:Does it matter if html5shiv JS is loaded before or after other scripts? (page load time)html5shiv JS 在其他脚本之前还是之后加载有关系吗? (页面加载时间)
【发布时间】:2013-07-02 23:15:28
【问题描述】:

我只是想知道 html5shiv.js 脚本加载的放置是否重要。我只知道它必须在页面的<head> 部分。

它是否需要出现在页面上的所有其他脚本之前?如果它是加载的第一个或最后一个脚本,会有所不同吗?如果在之前/之后加载,它会与库冲突吗?

页面加载时间的最佳解决方案是什么?

【问题讨论】:

    标签: javascript html optimization html5shiv


    【解决方案1】:

    对于 html5 元素,html5shiva polyfill。因此,它必须在您的<head> 中,并且将它放在其他任何地方都会违背目的。它应该在所有标记之前在<head> 中运行,并且仅适用于版本 9 以下的 IE。这确保它能够使 IE 正常工作。如果你在其他任何地方运行它,可能会发生不好的事情。加载方法如下:

    <head>
    ....
    <!--[if lt IE 9]>
    <script src="html5shiv.js"></script>
    <![endif]-->
    ...
    </head>
    <body>
    

    您的具体问题

    它是否需要出现在页面上的所有其他脚本之前?

    是的。这最大限度地减少了 IE 中的冲突和奇怪的问题。例如,它会在浏览器中创建后续脚本可能需要的未知元素。

    如果它是加载的第一个或最后一个脚本,会有什么不同吗?

    是的。如果它是最后加载的,其他脚本可能不会受益。例如,他们的特征检测可能会检测到不存在的元素并诉诸较慢的替代方案。

    如果在之前/之后加载,它会与库冲突吗?

    在大多数情况下,如果您在它之前加载某些内容并且某些内容尝试对未知的 html5 元素执行某些操作,我会说它可能会导致冲突。

    实际上,这取决于您在做什么!以及您放置在那里的代码。您可以编写/拥有与它冲突或不冲突的代码并将其放在之前。一般来说,只要您不进行任何 DOM 操作或挂钩任何东西,就应该没问题。 Test in IE and see

    页面加载时间的最佳解决方案是什么?

    您是否在问网页的最佳页面加载时间应该是多少?如果这就是你的意思,那么我的回答是没有一个,因为它一直在变化。不过,我可以根据经验告诉您,您希望页面加载时间不超过 2 秒。但有时就像在电子商务网站中一样,您可能会自然地制作更重的页面。平衡是关键。永远test

    我记得 5 或 6 年前的平均值在 8 到 14 秒之间,而且是在 DSL 连接上。

    甚至会建议真正受欢迎和成功的网站需要尝试达到 1 秒以上的时间,因为人们变得更加不耐烦并且我们对技术的访问变得更容易获得。

    【讨论】:

    • 谢谢,我已经知道了——就像我在问题中所说的那样。你并没有真正回答我的问题。
    • @BadHorsie 我以为我已经用我总结的答案回答了你的问题,但让我详细说明你的个人问题。答案已编辑。
    • 谢谢,我基本上想知道是否必须先加载 shiv 或者是否无关紧要。我关于加载时间的问题特别是关于 shiv 在页面上的位置,但我认为这是一个多余的问题,因为您已经说过要先放置 shiv。
    【解决方案2】:

    如果您真的想加快脚本加载时间,请使用RequireJS,它将并行加载您的脚本。

    【讨论】:

    • 谢谢,但这并不能真正回答我的问题。
    猜你喜欢
    • 1970-01-01
    • 2023-03-03
    • 2015-03-28
    • 2020-02-01
    • 2017-01-13
    • 1970-01-01
    • 2018-08-16
    • 1970-01-01
    相关资源
    最近更新 更多