gpt4 book ai didi

javascript - W3C 和/或用于加载非可视网页资源的公认标准

转载 作者:太空宇宙 更新时间:2023-11-04 16:24:11 25 4
gpt4 key购买 nike

几年前,我受雇为符合 W3C/AA 标准的客户端应用程序开发 Web 前端。有人告诉我,CSS、JS 和其他非视觉/非演示内容应该始终保留在 head 标签中。

示例

<!DOCTYPE html>
<html>
<head>
<link type="text/css" rel="stylesheet" href="site.css" />
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="site.js"></script>
<script type="text/javascript">
$(document).ready(function() {
// Code here...
});
</script>
<head>
<body>
<div class="container">
...
</div>
</body>
</html>

这种方法对我一直有效,但在我目前的 Angular 色中,出于性能/执行原因,我被要求将 CSS 和 JS 引用全部移到文档底部

示例

<!DOCTYPE html>
<html>
<head>
...
<head>
<body>
<div class="container">
...
</div>
<link type="text/css" rel="stylesheet" href="site.css" />
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="site.js"></script>
<script type="text/javascript">
$(document).ready(function() {
// Code here...
});
</script>
</body>
</html>

有人告诉我,这样做并没有违反任何合规性或可接受性标准,并且在某些情况下允许网站加载得更快,但是这导致的问题比解决的问题更多。

因此,我想知道我是否应该坚持将这些资源保留在 head 标签中的决定,或者,另一方面,是否有任何令人信服的论据支持将资源标签放在底部或散布在文档中?

最佳答案

link elements不能出现在body元素 ( unless they are used for Microdata or RDFa )。所以你的 <link type="text/css" rel="stylesheet" href="site.css" />必须是 head 的 child 元素。

script elements可以出现在body .放置 script 是否有意义取决于脚本和您的文档元素作为 body 的最后一个子元素.例如,参见问题

如果script元素有一个 src属性(即脚本是从外部文件导入的),您可以使用 asyncdefer控制其执行的属性:

  • async :

    the script will be executed asynchronously, as soon as it is available

  • defer :

    the script is executed when the page has finished parsing

  • 默认(即既不是 async 也不是 defer ):

    the script is fetched and executed immediately, before the user agent continues parsing the page

  • async + defer :

    cause legacy Web browsers that only support defer (and not async) to fall back to the defer behavior instead of the synchronous blocking behavior that is the default

关于javascript - W3C 和/或用于加载非可视网页资源的公认标准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26863320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com