Jam*_*son 7 javascript setinterval
我想定期查询PHP脚本以获取新消息.为此,我使用了setInterval()函数和AJAX.
$(document).ready(function(){
var queryInterval = 1000; /* How fast we query for new messages */
setInterval(getMessages(), queryInterval);
function getMessages() {
console.log("tick");
}
});
Run Code Online (Sandbox Code Playgroud)
但是,当我查看Javascript控制台时,我只看到"滴答"一次.我确保控制台不会再忽略相同字符串的日志,所以如果代码工作正常,它应该每秒在控制台中显示"tick".
谁知道这里可能出现什么问题?
qwe*_*ymk 24
更改:
setInterval(getMessages(), queryInterval);
Run Code Online (Sandbox Code Playgroud)
至:
setInterval(getMessages, queryInterval);
Run Code Online (Sandbox Code Playgroud)
实际上,setInterval根本没有运行getMessages(甚至没有运行).setInterval期望对函数的引用,但是您正在立即执行该getMessages函数并将其返回值传递给(即).这就是后来的事情.setIntervalundefinedgetMessage
传递这样的引用setInterval:
setInterval(getMessages, queryInterval);
Run Code Online (Sandbox Code Playgroud)
如果这是唯一使用的地方getMessages,那么你也可以像这样写:
setInterval(function() {
console.log("tick");
}, queryInterval);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17312 次 |
| 最近记录: |