两个概念:1js是同步加载的
于是僦出现了js更新dom,多页面渲染不能及时渲染的问题
//运行结果会在ajax执行完毕后再去渲染多页面渲染
深入研究浏览器内核可以发现,浏览器内核是多线程的其中一个常驻线程叫javascript引擎线程,负责执行js代码还有一个常驻线程叫GUI渲染线程,负责多页面渲染渲染dom重画等操作。javascript引擎昰基于事件驱动单线程执行的js线程一直在等待着任务列表中的任务到来,而js线程与gui渲染线程是互斥的当js线程执行时,渲染线程呈挂起狀态只有当js线程空闲时渲染线程才会执行。所以我们可以理解为什么dom更新总是不能被立刻执行。就我们的代码来说显示提示和隐藏提示的dom操作都被浏览器记下来了并放在gui渲染线程的任务队列中,但都没有立刻进行渲染而是在当前函数完成后(js线程已处于空闲状态),进行最终的dom渲染而我们的用户则基本感受不到这个过程,因为经过show和hide两个相反的操作相当于dom完全没变。