本文探讨 JavaScript 中 setTimeout(callback, 0) 的实际执行机制。虽然延时为0,但回调函数会被放入宏任务队列,在文档内容稳定后执行。相比传统的 defer 或 onload 事件,该方法能更好地应对查询、更新等操作导致的页面局部刷新场景,确保代码在 DOM 更新完成后运行。
setTimeout(fn, 0) 的执行机制与优势
此处输出结果为:
浏览器于文档内容稳定后立即运行该代码,实现与<script defer='defer'>或<body onload="fun()">等效的功能。
该方法优于前述方案,后者仅限文档初次加载时的静态处理;系统开发中常因查询或更新导致内容刷新,利用setTimeout特性可确保代码在页面内容稳定后执行。