setTimeout() 无延迟触发
setTimeout() triggering without delay
本文关键字:延迟 setTimeout 更新时间:2023-09-26
>我有以下代码
Ext.onReady(function () {
setTimeout(everything(), 30000);
});
我正在尝试等待 EXT.NET 完全完成页面编译,然后再将任何 javascript 应用于 elemtents。这在大多数浏览器中不是问题,因为 $(document).load 提供了足够的延迟。当然,可怕的IE浏览器过早地触发了.load,这意味着我必须输入硬编码的延迟。然而,上面的代码不会延迟 everything() 的执行。
有什么想法吗?
从everything
中删除()
setTimeout(everything, 30000);
通过包含 ()
,您告诉浏览器立即执行everything
并将其返回值作为回调函数发送到setTimeout
。
更改
setTimeout(everything(), 30000);
自
setTimeout("everything()", 30000);
或
setTimeout(everything, 30000);
正如其他人所发布的那样,您应该写这个:
Ext.onReady(function() {
setTimeout(everything, 30000);
});
他们没有发布的是解释。在上面的代码片段中,everything
是对调用 Ext.onReady()
方法的作用域中的函数的引用。在您的问题中,您正在使用setTimeout()
来执行everything()
函数的结果。您的everything()
函数很可能返回undefined
,因此您的setTimeout()
调用永远不会执行任何操作。
有人建议使用setTimeout("everything()", 30000)
.这实际上与使用 eval()
相同。因此,这不是推荐的方法。
相关文章:
- SetTimeout延迟未按jquery幻灯片中的预期工作
- 使用promise或setTimeout确定延迟函数的调用顺序
- 为什么即使 setTimeout 设置为 0 延迟也会有延迟
- 当超出范围时,延迟执行脚本Jquery(或SetTimeOut)BUT
- 使用setTimeout延迟d3转换
- setTimeOut没有等待适当的延迟时间
- firefox中的setTimeout延迟
- 使用setTimeout的延迟居中弹出式Javascript
- 延迟后JS setTimeout获取事件
- 使用setTimeout在创建新元素之间强制延迟
- 如何使用js-setTimeout延迟此文本的淡入
- 延迟 href 单击,但不使用 SetTimeout
- setTimeout() 无延迟触发
- Javascript 使用 setTimeout() 时延迟长度的经验法则允许出现“加载”弹出窗口
- 使用 setTimeout 延迟所有繁重的计算
- setTimeout() - 在具有随机延迟的 for 循环中
- 使用 settimeout 以延迟方式对函数进行排队
- 具有不同延迟的setTimeout()回调的JavaScript执行顺序
- 如何在下面的代码中添加setTimeout来延迟渐变动画
- 变量值更改不会延迟setTimeout