这是我的第一个问题,我很高兴你很快回答。
我想代码连续重复一个函数... 我尝试了一些代码,但它没有用。
我试过这段代码:
<script type="text/javascript">
$(function()
{
$('#more').load('exp1.php'); // SERIOUSLY!
});
</script>
我想在一段时间后重复这个功能。我试过了
setInterval()
和setTimeout()
但是,我还没有收到结果。
答案 0 :(得分:7)
这将重复此任务,直到您清除间隔(使用clearTimeout(repater))
var repeater;
function doWork() {
$('#more').load('exp1.php');
repeater = setTimeout(doWork, 1000);
}
doWork();
根据OP的原始条件:
我希望代码能够连续重复功能......
答案 1 :(得分:2)
你可以这样做
var myFunction = function() {
$('#more').load('bla.php');
};
var timer = setInterval(myFunction, 1000); // call every 1000 milliseconds
或
var timer = setTimeout(myFunction, 1000); // call every 1000 milliseconds
clearTimeout(timer); //To stop the function from being called forever
as @Christofer Eliasson 对于Ajax请求,您可能希望使用超时而不是间隔,在回调中再次启动超时,以确保您不会如果服务器响应时间超过1秒,则堆栈调用
好读
答案 2 :(得分:2)
对于Ajax请求,我会使用timeout而不是间隔,并在ajax-request的回调中再次启动超时。
如果您使用1秒的间隔并且您的服务器需要超过一秒的时间来响应,您将开始以间隔堆叠呼叫,因为无论如何,间隔将每秒调用该函数。相反,使用超时回调方法,在上一次请求完成之前,您不会开始倒计时。
我正在使用IIFE来触发对该函数的第一次调用。然后当加载完成后,我使用超时在一秒后再次调用该函数:
(function loadContent(){
$('#more').load('exp1.php', function () {
setTimeout(loadContent, 1000);
});
})();
答案 3 :(得分:0)
把它扔出去:
function doRequest() {
$.ajax({
url: 'exp1.php',
timeout: 1000,
success: function(data) {
$('#more').html(data);
doRequest();
}
});
}
答案 4 :(得分:-1)
一些好的'时尚递归怎么样?
function getStuff() {
$('#more').load('exp1.php', function() {
getStuff();
});
}
getStuff();