简单问题。
当浏览器解析JavaScript文件时,它会阻塞主线程吗?
我的意思是,浏览器在此期间是否响应?是否可以滚动或卡住?
阅读下面的文章后,我想到了这个问题:
解析JS不会阻止“主线程”,至少这是您在现代浏览器中可以观察到的行为。但是,该页面是从上到下加载的,因此,如果中间有JavaScript,则在评估其余部分之前,将下载并解析JS。
Already shown
<script>while(true);</script>
Not shown.
因此,最佳做法是将<script>
标记为延迟或异步,或将其移至页面底部。
CNN可能也在这样做。关键在于细节:
是完全可交互的
由于当今的网站在很大程度上依赖于JS进行交互,因此解析时间变得更加重要。