【发布时间】:2010-04-27 17:48:22
【问题描述】:
HTML5 specifications 声明 setTimeout 可以在没有额外的“超时”参数的情况下运行,该参数应该说明函数“处理程序”将在多少毫秒后被调度。
handle = window . setTimeout( handler [, timeout [, arguments ] ] )
Schedules a timeout to run handler after timeout milliseconds. Any arguments are passed straight through to the handler.
但是,我找不到任何解释在没有设置“超时”时间段时会发生什么的地方。
一个示例用法是,Raphael 库中的 animation implementation。
animationElements[length] && win.setTimeout(animation);
【问题讨论】:
-
当前所有主流浏览器都可以接受一个参数,因此为避免混淆,值得指出的是浏览器不一定要符合 HTML5 才能支持此参数。
-
这是在 JS 中执行延迟过程调用的绝妙方式 - “稍后/现在不执行 X”。如果您在事件处理程序中,由于状态/重新进入问题,可能不是调用某些函数的好时机。请注意,您不能保证实际执行时间,但它“很快”。
-
@Andy Mozilla MDC 将毫秒声明为强制参数。
-
@JBRWilkinson:确实,这也是延迟执行的好方法,如果触发特定事件,可以取消它。我已经多次使用过这种技术,它真的很有用。
标签: javascript settimeout