Javascript 是";窗口。仅加载“;脚本位于页面底部时是否需要?

Javascript 是";窗口。仅加载“;脚本位于页面底部时是否需要?,javascript,ecmascript-6,Javascript,Ecmascript 6,假设我的js脚本文件放在页面底部,则“window.onload”在: 真的需要吗?而不是简单地: var elem1 = document.getElementById("element1"); 如果没有区别的话,如果我添加“async”,这仍然是真的吗?即: <script async src="...."></script> 否。页面按代码从上到下加载。如果您的脚本位于页面底部,它将最后加载,因此您不需要window.onload,因为页面已经加载。w

假设我的js脚本文件放在页面底部,则“window.onload”在:

真的需要吗?而不是简单地:

  var elem1 = document.getElementById("element1");
如果没有区别的话,如果我添加“async”,这仍然是真的吗?即:

  <script async src="...."></script>


否。页面按代码从上到下加载。如果您的脚本位于页面底部,它将最后加载,因此您不需要window.onload,因为页面已经加载。

window.onload在HTML解析完成后要执行JavaScript时使用。它确保呈现所有HTML标记

Async
in-script标记用于在浏览器解析HTML时执行JavaScript(脚本在可用时尽快执行)

关于你的问题,如果没有区别:

加载脚本与加载异步脚本之间存在差异


如果不使用异步,脚本标记将阻止渲染。

不,不需要
window.onload
用于确保JS在加载所有HTML后运行。由于页面是按顺序加载的,所以当您到达底部时,所有内容都会加载。异步没有任何区别,因为这会使它运行得更晚。如果DOM是在同步时加载的,则稍后仍将加载。这取决于代码中的内容。在您的情况下,没有。图像没有完全加载。我建议使用
window.addEventListener('DOMContentLoaded',(event)=>{console.log('domFullLoaded and parsed');})
window.onload=function(){console.log('page-loaded');}相反。为了您的利益,建议使用其中一种。它有助于防止在加载所有必要资源之前执行脚本。
  <script async src="...."></script>