【发布时间】:2013-07-02 23:15:28
【问题描述】:
我只是想知道 html5shiv.js 脚本加载的放置是否重要。我只知道它必须在页面的<head> 部分。
它是否需要出现在页面上的所有其他脚本之前?如果它是加载的第一个或最后一个脚本,会有所不同吗?如果在之前/之后加载,它会与库冲突吗?
页面加载时间的最佳解决方案是什么?
【问题讨论】:
标签: javascript html optimization html5shiv
我只是想知道 html5shiv.js 脚本加载的放置是否重要。我只知道它必须在页面的<head> 部分。
它是否需要出现在页面上的所有其他脚本之前?如果它是加载的第一个或最后一个脚本,会有所不同吗?如果在之前/之后加载,它会与库冲突吗?
页面加载时间的最佳解决方案是什么?
【问题讨论】:
标签: javascript html optimization html5shiv
对于 html5 元素,html5shiv 是 a 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 秒以上的时间,因为人们变得更加不耐烦并且我们对技术的访问变得更容易获得。
【讨论】:
如果您真的想加快脚本加载时间,请使用RequireJS,它将并行加载您的脚本。
【讨论】: