javascript - 在此之前,同步调用不会阻止警报
问题描述
我创建了这个示例网页,通过多次运行相同的阻塞调用来创建延迟。这里的问题是,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>
解决方案
console.log 会将数据排队并在进程结束时写入,它不会同步写入字符串,并且因为您排队了很多数据,浏览器完成计数并在显示控制台数据之前显示警报。
推荐阅读
- yaml - 如何在ejs的后续循环中重用从循环中获得的变量?
- c - 没有外部的头文件中的全局变量
- php - 为什么我得到这个 java.lang.string 类型的错误值成功无法转换为 JSONOBJECT?
- vue.js - 多个div上的Vuejs相同功能需要单独运行
- java - Selenide 打开 IE 但无法按 ID 选择元素
- javascript - 修复网站中的特定链接仅在 iphone 上不起作用
- fullcalendar - 有没有办法重命名视图的文本/标签,即将标题“议程”中的单词更改为“我的文本”?
- c# - WPF - 隐藏组合框选择
- mysql - mysql查询以查找所有可能的类似组合以(简化重复)开头和结尾
- android - 如何修复反应原生 apk 不更新问题