首页 > 编程语言 > 详细

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

时间:2019-09-16 16:26:28      阅读:167      评论:0      收藏:0      [点我收藏+]

代码:

<script>
//1----语句式的匿名函数创建以及调用 (function(name,age){ alert("name:"+name+",age:"+age); document.write("name:"+name+",age:"+age+"
<br/>"); alert("111"); alert("222"); })("lisi","44"); //------------------------------------------- //3---第三种函数的创建 var f2=new Function("name","age",‘alert("name:"+name+",age:"+age);‘); f2("zhaijiahao","22");
</script>

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

技术分享图片

 

 点击完确定之后紧接着

技术分享图片

 

  点击完确定之后紧接着

技术分享图片

 

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

技术分享图片

 

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

技术分享图片

 

 

具体的原因分析:

关于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

 

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

原文:https://www.cnblogs.com/isme-zjh/p/11527820.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!