2012-08-01 114 views
0

我现在认为在3秒内做回发的唯一方法就是这样。在javascript中回发之前的延迟

setInterval("__doPostBack('UpdatePanel1', '')", 3000); 

我遇到的问题是它每3秒发回一次。有没有更好的方法来做到这一点或清除间隔?我正在使用一个asp更新面板控件。

这里是我完整的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) 
    } 
+2

尝试setTimeout,它像setInterval但它只运行一次 – hackattack 2012-08-01 17:52:55

+4

注意:不要传递字符串到'setTimeout' /'setInterval';它使用'eval'!传递函数:'setInterval(function(){__doPostBack('UpdatePanel1','');},3000);'。 – 2012-08-01 17:54:56

回答

2
setTimeout(function() { __doPostBack('UpdatePanel1', ''); }, 3000); 

将只运行一次。

或者您可以使用setInterval的返回值作为间隔线程的引用,然后可以清除它;

myInterval = setInterval(function() { __doPostBack('UpdatePanel1', ''); }, 3000); 
//later 
clearInterval(myInterval); 

编辑:正确,函数的语法加按的意见。

+0

我做了更改,但似乎是在调试模式下反复调用updatepanels方法,而不是一次。 – lagwagon223 2012-08-01 18:46:32