当前位置:编程学习 > C#/ASP.NET >>

急急急,请教个关于倒计时的功能。坐等回复。。。

需要做个秒杀的功能。
需要从数据库获取开始时间,和秒杀周期(秒杀的时间段,比如5分钟内可以秒杀)
然后用ajax处理倒计时。没有到开始时间的话就是显示倒计时,按钮是不可以点击的状态。
到开始时间了就开始倒计时秒杀的周期,然后按钮是可以点击的状态。
过了秒杀周期就显示秒杀结束,然后按钮变回不可点击状态。。。
在网上搜了很多。都是不合适的。。。
请高手指点指点。。谢谢了。。。
不知道描述的清楚不清楚。。。有问题我会及时补充的。。很急很急。。。。 --------------------编程问答-------------------- 写存储过程,然后通过数据库作业代理看看。 --------------------编程问答--------------------
引用 1 楼 qingfeng_wu 的回复:
写存储过程,然后通过数据库作业代理看看。


不需要那么复杂吧。。感觉Ajax就可以了啊。。 --------------------编程问答-------------------- ajax也可以,但是数据库作业代理更方便,也更安全,还可以适时监管。 --------------------编程问答-------------------- 还有用Ajax太多也有个问题,就是数据不容易被百度收入。 --------------------编程问答--------------------
引用 4 楼 qingfeng_wu 的回复:
还有用Ajax太多也有个问题,就是数据不容易被百度收入。


关键是怎么做呀?不会呢。。。能否贴点代码啊。 --------------------编程问答-------------------- private DateTime dtExam = DateTime.Parse("2010-07-26 17:42:00"); //定义时间到期时间        
protected void timerCD_Tick(object sender, EventArgs e) 
        { 
            if (this.dtExam < DateTime.Now) //如果设置的时间已过
            {
                this.timerCD.Enabled = false;    //将Timmer置为false
                labTimes.Text = "时间到!";
            } 
            else 
            {
                RefreshTime();                 //刷新时间
            } 
        } 

        private void RefreshTime() //刷新时间的方法
        { 
            TimeSpan ts = this.dtExam - DateTime.Now; //时间差
            this.labDays.Text = ts.Days.ToString().PadLeft(2, '0') + "天"; 
            this.labTimes.Text = ts.Hours.ToString().PadLeft(2, '0') + ":" + ts.Minutes.ToString().PadLeft(2, '0') + ":" + ts.Seconds.ToString().PadLeft(2, '0'); 
        }

前台代码:
<form id="form1" runat="server">
    <div>
         </div>
         <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox> 
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        时<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>分<asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
        <asp:Timer ID="timerCD" runat="server" Interval="1000" OnTick="timerCD_Tick">
        </asp:Timer>
        <asp:Label ID="labDays" runat="server" Width="155px"></asp:Label><asp:Label ID="labTimes" runat="server" Width="155px"></asp:Label>
            </ContentTemplate>
        </asp:UpdatePanel>
    </form> --------------------编程问答-------------------- <%@ Page Language="C#" AutoEventWireup="true" CodeFile="wait.aspx.cs" Inherits="company_manage_wait" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <style type="text/css">
        #d3
        {
            width: 100px;
        }
        .upload
        {
            height: 24px;
            line-height: 24px;
            border: 1px solid #CCCCCC;
            width: 290px;
        }
    </style>

    <script language='javascript' type='text/javascript'>   
    var secs =5; //倒计时的秒数   
    var URL ;   
    function Load(url){   
    URL =url;   
    for(var i=secs;i>=0;i--)   
    {   
    window.setTimeout('doUpdate(' + i + ')', (secs-i) * 1000);   
    }   
    }   
    function doUpdate(num)   
    {   
    document.getElementById('ShowDiv').innerHTML = '页面将在<span style=\"color:red;\">'+num+'</span>秒后自动跳转到"两个人旅行网首页"';   
    if(num == 0) { window.location=URL; }   
    } 
    </script>

</head>
<body>
    <script language='javascript' type='text/javascript'>   
Load("http://www.legeren.cn/index/");   
    </script>
<div align="center" id="ShowDiv">
</div>
</body>
随手给你一个,不知道对你有没有帮助。 --------------------编程问答--------------------
引用楼主 hopedilei 的回复:
需要做个秒杀的功能。
需要从数据库获取开始时间,和秒杀周期(秒杀的时间段,比如5分钟内可以秒杀)
然后用ajax处理倒计时。没有到开始时间的话就是显示倒计时,按钮是不可以点击的状态。
到开始时间了就开始倒计时秒杀的周期,然后按钮是可以点击的状态。
过了秒杀周期就显示秒杀结束,然后按钮变回不可点击状态。。。
在网上搜了很多。都是不合适的。。。
请高手指点指点。。谢谢了。。。
不知道描述……


晕,ajax干嘛?

页面上做一个定时器, 

页面加载的时候,每个按钮加一个时间上去.

js每秒判断过去的时间就行了,

时间到5分钟内了就让按钮可按就行鸟. --------------------编程问答-------------------- 谢谢楼上各位的启发啊。。我先重新整理个思路啊。哈哈 --------------------编程问答-------------------- $(document).ready(function() {
    //电子电器
    var CountdownTImeE = $("input[id*=txtElectronCountdownTime]").val(); //倒计时

    if (CountdownTImeE != "" && CountdownTImeE != null) {
        var year = CountdownTImeE.split(' ')[0].split('-')[0]; //年
        var month = CountdownTImeE.split(' ')[0].split('-')[1]; //月
        var day = CountdownTImeE.split(' ')[0].split('-')[2]; //日
        var hour = CountdownTImeE.split(' ')[1].split(':')[0]; //时
        var min = CountdownTImeE.split(' ')[1].split(':')[1]; //分
        var second = CountdownTImeE.split(' ')[1].split(':')[2]; //秒
        var time = month + "/" + day + "/" + year + " " + hour + ":" + min + ":" + second;

        var endtime = new Date(time); //时间格式:"7/21/2010 09:48:00"
        var nowtime = new Date();
        var maxtime = (endtime.getTime() - nowtime.getTime()) / 1000;

        var timer = setInterval("daojishiE()", 1000);

        if (maxtime <= 0) {

            $(".xs-qg-qw").eq(0).show();
            $(".xs-qg-qg").eq(0).hide();
            $(".xs-qg-qw").eq(1).show();
            $(".xs-qg-qg").eq(1).hide();
            clearInterval(timer);
            document.getElementById('showdateElectron').innerHTML = "<i>电子电器:</i><b>剩</b><em>00</em><b>时</b><em>00</em><b>分</b><em>00</em><b>秒</b>";
        }
        daojishiE = function() {
            if (maxtime >= 0) {
                //day = Math.floor(maxtime / 3600 / 24);
                hours = Math.floor(maxtime / 3600);
                minutes = Math.floor((maxtime / 60) % 60);
                seconds = Math.floor(maxtime % 60);
                msg = "<i>电子电器:</i><b>剩</b>" + "<em>" + hours + "</em>" + "<b>时</b>" + "<em>" + minutes + "</em>" + "<b>分</b>" + "<em>" + seconds + "</em>" + "<b>秒</b>";
                document.getElementById('showdateElectron').innerHTML = msg;
                //if(maxtime == 5*60) alert('注意,还有5分钟!');
                --maxtime;
            }
            else {

                var proid = "";
                $("#divCountdown input[id='hidProidE']").each(function() {
                    proid += $(this).val() + ",";
                });
                $.get("/AjaxBehind/DefaultHandler.ashx", { type: "edit", proidlist: proid }, function(data) {
                    $("#showdateElectron").html(data);
                    clearInterval(timer);
                    window.location = window.location;
                });

            }
        }
    }
});
前台可以参考www.uee360.com首页有倒计时
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,