让JavaScript变得异步,就像它们在这里一样简单吗? https://www.w3schools.com/tags/att_script_async.asp
例如,如果我在HTML中有这个:
<script src="/whatever.js">
我将其更改为:
<script src="/whatever.js" async>
这真的让它异步吗?真的那么容易吗?
答案 0 :(得分:2)
不,async
属性不会使您的JavaScript代码异步。它仅向浏览器指示异步加载脚本。
当你加载没有async
的JS脚本时,HTML的解析将停止,等待脚本被下载,解析和执行。之后,它将继续解析HTML。这保证了如果您按顺序加载两个脚本:1.js
和2.js
,2.js
将在1.js
之后执行。
在async
标记上设置<script>
属性时,表示可以异步加载脚本。实际上,这意味着您不能假设您的代码将按照在HTML中找到的顺序执行。下载文件后,它将像任何其他JS代码一样执行。
答案 1 :(得分:0)
这取决于你想要异步的东西。
该属性告诉浏览器在不等待页面完全加载的情况下执行脚本,从这个意义上讲,使其异步就很容易了。
另一方面,如果您希望脚本执行某些操作(可能是对服务的调用)并在答案回来时更新页面,而不是在等待时阻止页面,那么您将不得不使用一些{ {3}}