急急急,请教个关于倒计时的功能。坐等回复。。。
需要做个秒杀的功能。需要从数据库获取开始时间,和秒杀周期(秒杀的时间段,比如5分钟内可以秒杀)
然后用ajax处理倒计时。没有到开始时间的话就是显示倒计时,按钮是不可以点击的状态。
到开始时间了就开始倒计时秒杀的周期,然后按钮是可以点击的状态。
过了秒杀周期就显示秒杀结束,然后按钮变回不可点击状态。。。
在网上搜了很多。都是不合适的。。。
请高手指点指点。。谢谢了。。。
不知道描述的清楚不清楚。。。有问题我会及时补充的。。很急很急。。。。 --------------------编程问答-------------------- 写存储过程,然后通过数据库作业代理看看。 --------------------编程问答--------------------
不需要那么复杂吧。。感觉Ajax就可以了啊。。 --------------------编程问答-------------------- ajax也可以,但是数据库作业代理更方便,也更安全,还可以适时监管。 --------------------编程问答-------------------- 还有用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>
随手给你一个,不知道对你有没有帮助。 --------------------编程问答--------------------
晕,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