Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NET页面上的倒计时计时器_Asp.net_Javascript_Asp.net Ajax - Fatal编程技术网

ASP.NET页面上的倒计时计时器

ASP.NET页面上的倒计时计时器,asp.net,javascript,asp.net-ajax,Asp.net,Javascript,Asp.net Ajax,你能给我推荐一种在ASP.NET页面上放置计时器的方法吗 现在我使用以下代码: Default.aspx <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> <asp:Label ID="Label1

你能给我推荐一种在ASP.NET页面上放置计时器的方法吗

现在我使用以下代码:

Default.aspx

<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
    <asp:Label ID="Label1" runat="server">60</asp:Label>
    <asp:Timer ID="Timer1" runat="server" Interval="1000" 
        ontick="Timer1_Tick">
    </asp:Timer>
</ContentTemplate>
</asp:UpdatePanel>

但这是昂贵的交通。我更喜欢纯客户端方法。在ASP.NET中可能吗

您可以在.aspx页面中添加类似的内容

<form name="counter"><input type="text" size="8" 
name="d2"></form> 

<script> 
<!-- 
// 
 var milisec=0 
 var seconds=30 
 document.counter.d2.value='30' 

function display(){ 
 if (milisec<=0){ 
    milisec=9 
    seconds-=1 
 } 
 if (seconds<=-1){ 
    milisec=0 
    seconds+=1 
 } 
 else 
    milisec-=1 
    document.counter.d2.value=seconds+"."+milisec 
    setTimeout("display()",100) 
} 
display() 
--> 
</script> 


发现

好的,最后我以

<span id="timerLabel" runat="server"></span>

<script type="text/javascript">

    function countdown() 
    {
        seconds = document.getElementById("timerLabel").innerHTML;
        if (seconds > 0) 
        {
            document.getElementById("timerLabel").innerHTML = seconds - 1;
            setTimeout("countdown()", 1000);
        }
    }

    setTimeout("countdown()", 1000);

</script>

函数倒计时()
{
秒=document.getElementById(“timerLabel”).innerHTML;
如果(秒>0)
{
document.getElementById(“timerLabel”).innerHTML=seconds-1;
设置超时(“倒计时()”,1000);
}
}
设置超时(“倒计时()”,1000);
真的很简单。就像使用JavaScript编写的普通HTML一样。

使用此JavaScript代码----

var-sec=0;
var min=0;
var小时=0;
变量t;
函数display(){
if(sec
time1=(DateTime)ViewState[“time”]-DateTime.Now;
如果(时间1.59秒)
{
Label1.Text=Label2.Text=string.Format(“{0}:{1:D2}:{2:D2}”,
时间1.小时,
时间1分钟,
时间(1秒);
}
其他的
{
Label1.Text=Label2.Text=string.Format(“{0:D2}:{1:D2}”,
时间1分钟,
时间(1秒);
}
}

var-sec=10;
var最小值=0
var小时=0;
变量t;
函数显示(){
秒-=1
如果((秒=0)和&(分钟=0)和&(小时=0)){
//如果使用弹出窗口:
setTimeout(“self.close()”,1000);
返回;
}
如果(秒<0){
秒=59;
min-=1;
}
如果(最小值<0){
最小值=59;
小时-=1;
}
其他的
document.getElementById(“”)。值=小时+:“+min+”:“+sec;
t=设置超时(“显示()”,1000);
}
window.onload=显示;

有趣的是,你这么问……我几天前刚刚实现了一个类似于你的解决方案。这是必须完成的,而且是快速而肮脏的。我很想知道如何在客户端执行此操作。回发后重置计时器值。我还进行了服务器检查,以避免Javascript攻击或表单重新加载。
<span id="timerLabel" runat="server"></span>

<script type="text/javascript">

    function countdown() 
    {
        seconds = document.getElementById("timerLabel").innerHTML;
        if (seconds > 0) 
        {
            document.getElementById("timerLabel").innerHTML = seconds - 1;
            setTimeout("countdown()", 1000);
        }
    }

    setTimeout("countdown()", 1000);

</script>
var sec=0 ;
 var min=0;
var hour=0;
var t;

function display(){ 
 if (sec<=0){ 
    sec+=1;
 } 
if(sec==60)
{
sec=0;
min+=1;
}
if(min==60){
hour+=1;
min=0;
}

 if (min<=-1){ 
    sec=0; 
    min+=1;
 } 

 else 
    sec+=1 ;
document.getElementById("<%=TextBox1.ClientID%>").value=hour+":"+min+":"+sec;
    t=setTimeout("display()",1000);
    }
window.onload=display;  
time1 = (DateTime)ViewState["time"] - DateTime.Now;

if (time1.TotalSeconds <= 0)
{
    Label1.Text = Label2.Text = "TimeOut!";                
}
else
{
    if (time1.TotalMinutes > 59)
    {
        Label1.Text = Label2.Text = string.Format("{0}:{1:D2}:{2:D2}",
                                                time1.Hours,
                                                time1.Minutes,
                                                time1.Seconds);
    }
    else
    {
        Label1.Text = Label2.Text = string.Format("{0:D2}:{1:D2}",                                    
                                                time1.Minutes,
                                                time1.Seconds);
    }
}
<script type="text/javascript">
    var sec = 10;
    var min = 0
    var hour = 0;
    var t;

    function display() {
        sec -= 1
        if ((sec == 0) && (min == 0) && (hour == 0)) {
            //if a popup window is used:
            setTimeout("self.close()", 1000);
            return;
         }
        if (sec < 0) {
            sec = 59;
            min -= 1;
        }
        if (min < 0) {
            min = 59;
            hour -= 1;
        }
       else
        document.getElementById("<%=TextBox1.ClientID%>").value = hour + ":" + min + ":" + sec;
        t = setTimeout("display()", 1000);
    }
    window.onload = display; 
</script>