对于javaScript中的alert和document.write()的执行顺序的记录

代码:

浏览器测试现象:访问test.html文件之后的现象

对于javaScript中的alert和document.write()的执行顺序的记录_第1张图片

 

 点击完确定之后紧接着

对于javaScript中的alert和document.write()的执行顺序的记录_第2张图片

 

  点击完确定之后紧接着

对于javaScript中的alert和document.write()的执行顺序的记录_第3张图片

 

   点击完确定之后紧接着,特别注意页面中的并没有出现name:lisi,age:44这句话

对于javaScript中的alert和document.write()的执行顺序的记录_第4张图片

 

 最后所有的调用的函数中的alert()运行完之后,就会显示name:lisi,age:44这句话

对于javaScript中的alert和document.write()的执行顺序的记录_第5张图片

 

 

具体的原因分析:

关于document.write()和alert()执行顺序的问题

为什么先写document.write()输出,却要等到后边的alert执行完成后才显示document.write()的内容?

解答:

有人认为:alert弹窗会阻塞代码 要点击确认才执行下面的代码,

 

问题复述:问题是把alert()写到document.write()之后也是先出弹窗,这是什么原因呢?

更合理的解答:alert会阻塞线程。实际上.write已经执行,只是浏览器还没渲染,这种情况下,有办法先让write执行结果显示。方式:

想实现“先document.write,再alert”。这里提供下思路:1>主线程跑document.write() ,然后利用setTimeOut() 定时0。5秒后执行alert();这个方法是线程不可控的 2>利用promise强制执行document.write()完之后,再在then 方法内执行 alert

 

转载于:https://www.cnblogs.com/isme-zjh/p/11527820.html

你可能感兴趣的:(对于javaScript中的alert和document.write()的执行顺序的记录)