对于javaScript中的alert和document.write()的执行顺序的记录
代码:
<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
您的资助是我最大的动力!
金额随意,欢迎来赏!