为什么我的 javascript alert() 代码在 <h1> html 标签之前运行?



<h1>Paragraph 1</h1>
<script type="text/javascript">
alert ("section one bottom");
</script>

我已经在<h1>标记之后添加了我的脚本,但<h1>仍然在javascript中的alert()之后运行。为什么?你能解释一下吗?我是网络开发的初学者。

h1元素将在alert发生之前存在,但它可能还没有被渲染(实际上是可见的(。web浏览器上的JavaScript每个窗口有一个主UI线程,(有时多个窗口共享一个线程(。在大多数浏览器中,UI线程通常也用于渲染。alert和其他1990年代的函数(promptconfirm(的不同寻常之处在于,它们完全停止了窗口的主UI线程,并等待用户执行某些操作。大多数浏览器甚至无法在显示alert时进行渲染。

通常,避免使用alertconfirmprompt—原因有几个:上面的问题,他们的UI相当笨重,浏览器正在慢慢改变它们的工作方式(尤其是当选项卡/窗口处于非活动状态时(,这意味着它们不再总是以不同浏览器的方式停止UI世界。


并不意味着JavaScript是单线程的。JavaScript本身对线程的描述相对较少,主要由主机环境决定(尽管最近的规范已经开始改变这一点(。在浏览器上,你可以通过网络工作者拥有多个线程;如今,它们甚至可以共享内存(在大多数浏览器中暂时禁用,但很快就会再次启用(。

最新更新