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

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

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

阅读 7.8k
2 个回答

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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题