在javascript中执行回发之前的延迟
我现在唯一能想到的办法就是延迟3秒回发,就是这样在javascript中执行回发之前的延迟,javascript,Javascript,我现在唯一能想到的办法就是延迟3秒回发,就是这样 setInterval("__doPostBack('UpdatePanel1', '' )", 3000); 我遇到的问题是,它每3秒就发回一次。是否有更好的方法来执行此操作或清除此操作的间隔?我正在使用asp updatepanel控件 下面是我的完整javascript代码,让您了解我正在尝试做什么: var delayb4scroll = 1000 //Specify initial delay before marquee
setInterval("__doPostBack('UpdatePanel1', '' )", 3000);
我遇到的问题是,它每3秒就发回一次。是否有更好的方法来执行此操作或清除此操作的间隔?我正在使用asp updatepanel控件
下面是我的完整javascript代码,让您了解我正在尝试做什么:
var delayb4scroll = 1000 //Specify initial delay before marquee starts to scroll on page (2000=2 seconds)
var marqueespeed = 2 //Specify marquee scroll speed (larger is faster 1-10)
var pauseAtBottom = 3000 //Pause at the end of the scroll for this many seconds (3000 = 3 seconds)
var copyspeed = marqueespeed
var actualheight = ''
var boolRunOnce = ''
function pageLoad() {
initializemarquee();
}
function scrollmarquee() {
if (parseInt(cross_marquee.style.top) - 975 > (actualheight * (-1) + 8)) //if scroller hasn't reached the end of its height
cross_marquee.style.top = parseInt(cross_marquee.style.top) - copyspeed + "px" //move scroller upwards
else { //else, scrollbar has reached the bottom, display for 3 seconds then postback
setInterval("__doPostBack('UpdatePanel1', '' )", 3000);
}
}
function initializemarquee() {
cross_marquee = document.getElementById("vmarquee")
cross_marquee.style.top = 0
marqueeheight = document.getElementById("marqueecontainer").offsetHeight
actualheight = cross_marquee.offsetHeight //height of marquee content (much of which is hidden from view)
setTimeout('lefttime=setInterval("scrollmarquee()",30)', delayb4scroll)
}
将只运行一次
或者您可以使用setInterval的返回值作为对interval线程的引用,然后可以清除该线程
myInterval = setInterval(function() { __doPostBack('UpdatePanel1', '' ); }, 3000);
//later
clearInterval(myInterval);
编辑:正确,根据注释添加了函数语法。尝试setTimeout,与setInterval类似,但只运行一次。注意:不要将字符串传递给
setTimeout
/setInterval
;它使用eval
!传递函数:setInterval(函数()代码>。我做了更改,但它似乎在调试模式下一次又一次地调用updatepanels方法,而不是只调用一次。
myInterval = setInterval(function() { __doPostBack('UpdatePanel1', '' ); }, 3000);
//later
clearInterval(myInterval);