我有一个jQuery $ post()来在页面加载时引入数据。此外,我还有一个setInterval()来在页面加载时加载一些其他数据。
$.post('my.php',
{
send:"123"
},
function(resp){
//trigger setInterval now
});
如何在收到数据后触发setinterval?
var wait = setInterval(function() {
//do something
}, 1000);
答案 0 :(得分:2)
function myIntervalFunction() {
// do something, your interval function
}
// start the general interval working process
setInterval(myIntervalFunction, 1000);
$.post('my.php', { send:"123" },
function(resp){
// trigger myIntervalFunction once
// after the ajax call is finished
myIntervalFunction();
}
);
答案 1 :(得分:0)
$.post('my.php',
{
send:"123"
},
function(resp){
var wait = setInterval(function() {
//do something
}, 1000);
});
没有理由不工作。
答案 2 :(得分:0)
在响应函数中声明它:
$.post('my.php',
{
send:"123"
},
function(resp){
var interval = setInterval(function() {
//do something
}, 1000);
});
或使其成为一个函数并在响应时调用它:
function start_interval () {
return setInterval(function() {
//do something
}, 1000);
}
$.post('my.php',
{
send:"123"
},
function(resp){
interval = start_interval()
});
答案 3 :(得分:0)
$.post("my.php", {send: "123"}, function() {
var wait = setInterval(function() {
alert("1 sec");
clearInterval(wait);
}, 1000);
});
答案 4 :(得分:0)
尝试在setInterval
的{{1}}回调范围之外定义对interval
wait
函数success
的引用;在$.post()
wait
回调中调用success
,可选地传递参数
$.post()
jsfiddle this question