2009-11-18 34 views
0

我問了幾次,但必須再次提問,因爲我不知道該怎麼辦: 在我的頁面上我有一個拍賣系統。在ASP.Net中使用Ajax進行數據庫查詢和倒計時〜硬問題

每一秒鐘我必須:

  • 獲取信息,如果它的任何投標人投標 - >數據庫查詢
  • 倒計時定時器減1秒
  • 更新的信息的幾個面板,如果有一個新的投標人(歷史所顯示,BLA)

我的(搞笑)的問題是,這只是一個簡單的ASP.Net Ajax的定時器(我必須有我想是因爲我需要的DAL等)在一個UpdatePanel同只有標籤計時器和倒計時需要多於1秒...

這意味着,當我運行計時器,只將標籤轉換爲日期時間,刪除1秒和更新標籤,在10正常秒數不運行10次,只有8次。

因此,在10秒我減掉2數秒

我不想圖像時,我開始內....

怎麼辦查詢數據庫?


我發現它不是太慢的性能。這個計時器並不是每秒都開始。

我充滿毫秒一個的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

所以它最終在幾毫秒內,但它再次啓動不正確的INTERVALL(1000毫秒它應該是!)


由於祝願代碼:

 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")); 
    } 

2)

      <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> 
+0

我會讓服務器提供所有相關的詳細信息,例如對物品的出價和剩餘拍賣時間。由於您所描述的原因,客戶端不應該這樣計算,客戶端系統只需要大量加載,並且您將開始錯過週期。 – Lazarus 2009-11-18 12:07:12

+0

是的詛咒serer做計算等,它是在一個商務課。 – Kovu 2009-11-18 12:14:42

+0

那你怎麼會失去時間? – Lazarus 2009-11-18 12:15:33

回答

1

我現在知道答案: 定時器在U pdate-Panel,所以會增加300毫秒的通過時間,因爲定時器會在每次圖像回發時重新啓動。

把計時器從更新面板中取出並在面板中獲得觸發器 - > Win。計時器每1秒鐘滴答一次。