Javascript 在头部包含脚本是否会降低加载速度?
Javascript 在头部包含脚本是否会降低加载速度?,javascript,Javascript,Google说我必须把这些文件放在文档的开头: <script src="https://www.gstatic.com/firebasejs/6.2.0/firebase-app.js"></script> <script src="https://www.gstatic.com/firebasejs/6.2.0/firebase-firestore.js"></script> 像这样的脚本有6-8个 关键是在加载html之前,我不需要
Google
说我必须把这些文件放在文档的开头:
<script src="https://www.gstatic.com/firebasejs/6.2.0/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/6.2.0/firebase-firestore.js"></script>
像这样的脚本有6-8个
关键是在加载html
之前,我不需要它们,只是在以后
html
body
是否等待加载所有这些内容标题上,而不是放在我的html
之后
您可以将
async
标记附加到这些脚本以防止它们阻塞整个页面。您可以将async
标记附加到这些脚本以防止它们阻塞整个页面
我的html主体是否等待加载所有这些内容
如果使用async分离脚本,则html主体不必等待
为什么谷歌明确建议把它们放在头上,而不是放在我的html之后
我认为firebase建议将其添加到身体中
我的html主体是否等待加载所有这些内容
如果使用async分离脚本,则html主体不必等待
为什么谷歌明确建议把它们放在头上,而不是放在我的html之后
我认为firebase建议将其添加到身体中
当浏览器引擎遇到脚本标记时,DOM开发将暂停,直到处理完整个脚本。根据脚本的大小,这需要自己的时间。使用脚本标记上的
async
或defer
修改脚本的下载方式。(例如
或
参见,谢谢,这太疯狂了,为什么有人会建议你把这个放在头上?我们不想先显示我们的html吗?但是如果我使用async,以后我有更多的脚本要加载(在html之后),需要先加载才能工作,我不能确定这些脚本是否加载了async(?)当浏览器引擎遇到脚本标记时,DOM开发将暂停,直到处理完整个脚本。根据脚本的大小,这需要自己的时间。在脚本标记上使用async
或defer
,修改脚本的下载方式。(例如
或
参见,谢谢,这太疯狂了,为什么有人会建议你把这个放在头上?我们不想先显示我们的html吗?但是如果我使用async,以后我有更多的脚本要加载(在html之后),需要先加载才能工作,我不能确定这些脚本是否加载了async(?)虽然这是一条有用的评论,但它并没有完全回答这个问题。身体加载暂停了吗?为什么谷歌建议把它们放在头上
?异步到底做了什么?虽然这是一条有用的评论,但它并没有完全回答这个问题。身体加载暂停了吗?为什么谷歌建议把它们放在头上>head
?async到底做了什么?我是堆栈溢出新手:)谢谢RobG:):我是堆栈溢出新手:)谢谢RobG:)的建议:dscript必须在head或body中。如果在这些元素之外,宽容的HTML用户代理只会将它们移动到适当的位置(注意头部和身体标记是可选的,因此用户代理可以将头部和身体放在适当的位置)。XML用户代理可能不会。脚本必须在头部或身体中。如果在这些元素之外,宽容的HTML用户代理只会将它们移动到适当的位置(注意头部和身体标记是可选的,因此用户代理可以将头部和身体放在适当的位置)。XML用户代理可能不会。
<body>
<!-- Insert these scripts at the bottom of the HTML, but before you use any Firebase services -->
<!-- Firebase App (the core Firebase SDK) is always required and must be listed first -->
<script async src="/__/firebase/6.3.1/firebase-app.js"></script>
<!-- Add Firebase products that you want to use -->
<script async src="/__/firebase/6.3.1/firebase-auth.js"></script>
<script async src="/__/firebase/6.3.1/firebase-firestore.js"></script>
</body>