asp.net中Timer定時器在web中無刷新的使用


最近在做一個項目的時候,web端的數據需要與數據源進行實時同步,並保證數據的准確性,當時,考慮到使用ajax異步刷新技術。但后來在網上查找相關資料時,發現這樣做,太浪費資源了,因為ajax的提交請求不應該這么頻繁的,只適用於那種手動請求響應的那種,因此這種辦法是行不通了,后來,發現asp.net中有一個定時器Timer,可以進行實時同步數據,因此本人就做了一個小小的測試,發現還挺好用的,於是乎就有了下文。如下:

關於如何准確定時器同步出現問題的解決方案:http://www.shaoqun.com/a/103654.aspx

aspx頁面中的代碼:

<form id="form1" runat="server"> 
    <div>
    <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
      <asp:UpdatePanel ID="UpdatePanel1" runat="server">
      <ContentTemplate>
        <asp:Timer ID="Timer1" runat="server" Interval="1000" ontick="Timer1_Tick">
        </asp:Timer>
         update中的:<asp:Label  ID="Label2" runat="server" Text=""></asp:Label>
      </ContentTemplate>
           </asp:UpdatePanel>
        當前秒:<asp:Label ID="Label1" runat="server" Text=""></asp:Label>
    </div>
   </form>

cs服務器上的代碼:

 protected void Page_Load(object sender, EventArgs e)
        {
           
        }
        protected void Timer1_Tick(object sender, EventArgs e)
        {
            //這里可以操作你想做的事情,比如定時查詢數據庫
            Label1.Text = DateTime.Now.ToLongTimeString()+":"+DateTime.Now.Millisecond;
            Label2.Text = DateTime.Now.ToLongTimeString() + ":" + DateTime.Now.Millisecond;
        }

 

 說明一下:

要想使用Timer定時器進行無刷新技術實現。首先在aspx頁面代碼中必須使用ScriptManager控件,同時使用UpdatePanel控件,這樣才會達到想要的結果。

測試后,你會發現,在UpdatePanel中的Label2對應的時間在不停的變化,和Lable1只是在你第一次打開頁面是 顯示,此后就不會顯示了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM