async:false;渲染阻塞

时间:2024-08-29 21:07:14

当我想让一个节点show()完以后再ajax获取数据进行操作;

$("#outerdiv2").show();
$.ajax({});

如果此时ajax里设置了async:false(代表ajax被设置为同步);

此时如果此段js有耗时操作,那么show()方法会在ajax之后执行。

原因:

ajax设置成同步时(async:false,),浏览器的渲染(UI)线程和js线程是互斥的,在执行js耗时操作时,页面渲染会被阻塞掉。

这个需要注意一下,所以是否需要用async:false是很严谨的。