我想每4秒重复一次这段代码,我怎样才能轻松地使用javascript或jquery呢?谢谢。 :)
$.get("request2.php", function(vystup){
if (vystup !== ""){
$("#prompt").html(vystup);
$("#prompt").animate({"top": "+=25px"}, 500).delay(2000).animate({"top": "-=25px"}, 500).delay(500).html("");
}
});
答案 0 :(得分:24)
使用setInterval功能
setInterval( fn , miliseconds )
来自MDC docs:
<强>摘要强>
重复调用函数,每次调用该函数之间都有固定的时间延迟。
<强>语法强>
var intervalID = window.setInterval(func, delay[, param1, param2, ...]);
var intervalID = window.setInterval(code, delay);
,其中
intervalID 是您可以传递给clearInterval()的唯一间隔ID。
func 是您想要重复调用的函数。
备用语法中的代码是您想要重复执行的代码字符串。 (建议不要使用此语法,原因与使用eval())
相同延迟是每次调用func之前setInterval()函数应等待的毫秒数(千分之一秒)。与setTimeout一样,强制执行最小延迟。
请注意,在第一种语法中将其他参数传递给函数在Internet Explorer中不起作用。
实施例
// alerts "Hey" every second
setInterval(function() { alert("Hey"); }, 1000);
答案 1 :(得分:18)
setInterval(function(){
// your code...
}, 4000);
答案 2 :(得分:11)
在javascript中不是太难。
// declare your variable for the setInterval so that you can clear it later
var myInterval;
// set your interval
myInterval = setInterval(whichFunction,4000);
whichFunction{
// function code goes here
}
// this code clears your interval (myInterval)
window.clearInterval(myInterval);
希望这有帮助!
答案 3 :(得分:11)
另一种可能性是使用setTimeout
,但将它与您的代码一起放在一个函数中,该函数在回调到$.get()
请求时递归调用。
这将确保请求相隔4秒的最小,因为下一个请求在收到上一个响应之前不会开始。
// v--------place your code in a function
function get_request() {
$.get("request2.php", function(vystup){
if (vystup !== ""){
$("#prompt").html(vystup)
.animate({"top": "+=25px"}, 500)
.delay(2000)
.animate({"top": "-=25px"}, 500)
.delay(500)
.html("");
}
setTimeout( get_request, 4000 ); // <-- when you ge a response, call it
// again after a 4 second delay
});
}
get_request(); // <-- start it off
答案 4 :(得分:0)
import os
import importlib
def get_seeds(path):
Path = os.path.normpath(path)
folders = Path.split('/') # create list of each folder component of the path
folder_path = '/'.join(folders[:-1]) # remove the file from the path to specify path to the folder containing script
sys.path.insert(1, folder_path) # add folder path to sys path so python can find module
mod = importlib.import_module(folders[-1][:-3]) # get rid of .py extension and use only name of the script rather than entire path
return mod.seeds
答案 5 :(得分:0)
每2秒钟连续调用Javascript函数20秒钟。
var intervalPromise; $scope.startTimer = function(fn, delay, timeoutTime) { intervalPromise = $interval(function() { fn(); var currentTime = new Date().getTime() - $scope.startTime; if (currentTime > timeoutTime){ $interval.cancel(intervalPromise); } }, delay); }; $scope.startTimer(hello, 2000, 10000); hello(){ console.log("hello"); }