日期:2014-05-18  浏览次数:20387 次

小弟裸体冰天雪地空翻1800度倒立跪求定时提醒功能实现
我在前台页面里写了<meta http-equiv="refresh" content="60"> 每分钟刷新一次,后台代码如下
C# code
    private void timeSpanRemind()
    {
        DataTable dt = getRemindTime();
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            if (dt.Rows[i]["IsRemind"].ToString() == "True")
            {
                DateTime nowtime = DateTime.Now;
                string temp = dt.Rows[i]["RemindTime"].ToString() + ":00";
                DateTime remindtime = DateTime.Parse(temp);
                int timespan = int.Parse(dt.Rows[i]["TimeSpan"].ToString());
                int advancetime = int.Parse(dt.Rows[i]["AdvanceTime"].ToString());
                string title = dt.Rows[i]["Title"].ToString();
                Timer timer = new Timer();
                timer.Elapsed += new ElapsedEventHandler(timer_Elapsed);
                double ts = timespan * 60000;
                timer.Interval = ts;

                if (DateDiff(remindtime, nowtime) == advancetime)
                {
                    Page.RegisterStartupScript("", "<script>alert('" + temp + ",行动主题:" + title + "。离您的预约时间还有" + advancetime + "分钟,请查看日程安排!')</script>");
                }
                if (DateDiff(remindtime, nowtime) < advancetime)
                {
                    timer.Enabled = true;
                    timer.Start();
                }
            }
        }
    }
     //这是2个时间差的方法
    private int DateDiff(DateTime DateTime1, DateTime DateTime2)
    {
        int dateDiff = 0;
        try
        {
            TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);
            TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);
            TimeSpan ts = ts1.Subtract(ts2).Duration();
            dateDiff = ts.Minutes;
        }
        catch(Exception ex)
        {
            Page.RegisterStartupScript("", "<script>alert('"+ex.Message+"')</script>");
        }
        return dateDiff;
    }

    private void timer_Elapsed(object source, ElapsedEventArgs e)
    {
        Page.RegisterStartupScript("", "<script>alert('离您的预约时间就快到了!请查看日程表!')</script>");
    }


timer_Elapsed里的内容没执行过,,,,,,,大家帮帮忙吧,,,非常急!!!!!!!!!!!!3QQQQQQ

------解决方案--------------------
为什么不直接用js的settimeout或者 setinterval来实现呢

web里没尝试用过timer
帮顶一下
------解决方案--------------------
这样做的效率比较低
每分钟页面都要重新加载 一次
  
你可以用ajaxpro+js实现
 在js中使用setTimeout每隔60秒调用一次服务器方法 而且看不到刷新效果
------解决方案--------------------
因为你的定时刷新代码方法没执行
------解决方案--------------------
ajax.net,有个Timer控件,应该可用吧。
------解决方案--------------------
ajax.net 可以考虑一下,可以定时,满足你的要求