search

Home  >  Q&A  >  body text

javascript - DOM的修改到底是同步还是异步的?

例如innerHTML的修改,或者appendChild...
在这些修改后,我可以用js立即获取到新增的元素吗?还是要等渲染完?

这句话对不对:DOM树的修改是同步的(js可以立即获取元素),渲染到屏幕上是异步的(不一定即时看到)

天蓬老师天蓬老师2779 days ago1043

reply all(2)I'll reply

  • 迷茫

    迷茫2017-04-11 09:15:18

    DOM操作当然是同步的。
    这些你直接把appendChild或者jquery对应的DOM操作拿去试试就知道。。直接试一下你就不需要问这种问题了。
    那些需要先取得数据的操作才是异步,比如ajax需要先从后端获得数据,AMD需要在触发时从回调函数里取得事先准备好的模板等等

    reply
    0
  • 高洛峰

    高洛峰2017-04-11 09:15:18

    这句话对,DOM元素本身修改当然是同步的。而DOM修改造成重绘与重排,当然是异步的,毕竟ui线程与js线程是互斥的

    reply
    0
  • Cancelreply