ASP.Net中使用Ajax进行数据库查询和倒计时~难题
我问了好几次,但必须再问一次,因为我不知道该怎么办: 在我的页面上,我有一个拍卖系统 每一秒我都必须:ASP.Net中使用Ajax进行数据库查询和倒计时~难题,asp.net,ajax,timer,Asp.net,Ajax,Timer,我问了好几次,但必须再问一次,因为我不知道该怎么办: 在我的页面上,我有一个拍卖系统 每一秒我都必须: 获取信息,如果任何投标人在它的出价->数据库查询 将计时器倒计时一秒 如果有新的投标人(显示的历史记录,bla),用信息更新一些面板 我(有趣的)问题是,在Updatepanel中只有一个简单的ASP.Net Ajax计时器(我必须有它,因为我需要DAL等等),只有标签计时器和倒计时需要超过1秒钟 这意味着,当我运行计时器时,它只将标签转换为DateTime,删除1秒并更新标签,在正常的1
- 获取信息,如果任何投标人在它的出价->数据库查询
- 将计时器倒计时一秒
- 如果有新的投标人(显示的历史记录,bla),用信息更新一些面板
我发现表演不是太慢。 计时器不是每秒钟启动一次 我在Debug.Writeline中填充了毫秒开始和结束计时器刻度,以下是3个示例:
- 2009.11.18 13:13:21:1821
- 2009.11.18 13:13:21:1821
- 2009.11.18 13:13:22:7021
- 2009.11.18 13:13:22:7021
- 2009.11.18 13:13:24:2421
- 2009.11.18 13:13:24:2421
如守则所愿:
protected void Timer1_Tick(object sender, EventArgs e)
{
System.Diagnostics.Debug.WriteLine(DateTime.Now.ToString("yyyy.MM.dd HH:mm:ss:ffff"));
DateTime dt = DateTime.Parse(lblTimer.Text);
dt = dt.AddSeconds(-1.0);
lblTimer.Text = dt.ToString("HH:mm:ss");
System.Diagnostics.Debug.WriteLine(DateTime.Now.ToString("yyyy.MM.dd HH:mm:ss:ffff"));
}
(二)
我现在知道答案了:
计时器位于更新面板中,因此将添加300毫秒的通过时间,因为每次imaginery回发都会重新启动计时器
将计时器从更新面板中取出,并在面板->Win中获取触发器。
计时器每1秒响一次。我会让服务器提供所有相关细节,即物品的出价和剩余拍卖时间。客户机不应进行该计算,原因正是您所描述的,客户机系统只需重载,您将开始错过周期。是的,对于serer do计算等,它在一个业务类中。请参见编辑。计时器似乎每1,4-1,6秒启动一次,而不是1秒。是否响应时间为200-300毫秒(x2,因为双向),计时器在第一次返回后开始计时?请发布您的代码,我不确定我是否了解倒计时计时器是如何实现的。请参阅编辑。它由页面加载(如果是回发)填充,值为30分钟
<asp:UpdatePanel ID="up1" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<asp:Timer ID="timeAD" Interval="1000" Enabled="true" runat="server" ontick="Timer1_Tick">
</asp:Timer>
<asp:Label ID="lblTimer" runat="server" Text="Label"></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>