首页 > 解决方案 > 在此之前,同步调用不会阻止警报

问题描述

我创建了这个示例网页,通过多次运行相同的阻塞调用来创建延迟。这里的问题是,javascript 需要一些时间才能计数到 50,000(大约 4 秒),至少在 javascript 控制台中看起来像这样,但是警报调用在 chrome 完成计数到 50,000 之前正在运行。这是为什么?

<html lang="en">
<head>
    <title>Document</title>
</head>

    <h1>Hello World</h1>
<body>
    <script>

        for(let i = 0; i < 50000; i++) {
            console.log("Loaded")
        }

        alert("loaded")

        console.log('WEB PAGE: Hello World')
    </script>
</body>
</html>

标签: javascript

解决方案


console.log 会将数据排队并在进程结束时写入,它不会同步写入字符串,并且因为您排队了很多数据,浏览器完成计数并在显示控制台数据之前显示警报。


推荐阅读