Timer 控制項

ASP.NET AJAX Timer 控制項會在定義的時間間隔執行回傳。如果您使用含有 UpdatePanel 控制項的 Timer 控制項,就可以在定義的時間間隔對部分網頁進行更新。您也可以使用 Timer 控制項張貼整頁。

您需要在 web.config 檔中進行特定設定,Timer 控制項才能正常運作。在嘗試使用此控制項時,若您的網站中沒有包含必要的 web.config 檔案,則原本應顯示該控制項之網頁的 [設計] 檢視中會出現錯誤。若您在 [設計] 檢視中按一下處於該狀態的控制項,Microsoft Expression Web 將會讓您選擇建立新的 web.config 檔案,或更新現有的 web.config 檔案。

案例

您可以在想要執行下列動作時使用 Timer 控制項:

  • 定期更新其中一或多個 UpdatePanel 控制項的內容,但不重新整理整個網頁。

  • 在每次 Timer 控制項造成回傳時,於伺服器上執行程式碼。

  • 在定義的時間間隔以同步方式將整個網頁張貼至網頁伺服器。

背景

Timer 控制項是將 JavaScript 元件內嵌於網頁中的伺服器控制項。Interval 屬性中所定義的時間間隔超過後,JavaScript 元件就會開始從瀏覽器進行回傳。您可以在於伺服器上執行的程式碼中設定 Timer 控制項的屬性,而這些屬性會傳遞至 JavaScript 元件。

當您使用 Timer 控制項時,網頁中必須包含 ScriptManager 類別的例項。

當回傳是由 Timer 控制項所開始時,該控制項會在伺服器上引發 Tick 事件。您可以為 Tick 事件建立事件處理常式,在網頁張貼到伺服器時執行動作。

設定 Interval 屬性可以指定回傳的發生頻率,而設定 Enabled 屬性可以開啟或關閉 Timer。Interval 屬性是以毫秒為單位定義,其預設值為 60,000 毫秒或 60 秒。

Cc295201.alert_note(zh-tw,Expression.10).gif注意事項:

將 Timer 控制項的 Interval 屬性設定為較小的值,可能會對網頁伺服器產生大量的流量。請將使用 Timer 控制項重新整理內容的頻率設定為符合需要即可,不要過於頻繁。

若必須在不同的時間間隔更新不同的 UpdatePanel 控制項,您可以在網頁上包含一個以上的 Timer 控制項。此外,Timer 控制項的單一例項可做為網頁中多個 UpdatePanel 控制項的觸發程序。

在 UpdatePanel 控制項內使用 Timer 控制項

當 Timer 控制項包含於 UpdatePanel 控制項內時,Timer 控制項會自動成為 UpdatePanel 控制項的觸發程序。您可以將 UpdatePanel 控制項的 ChildrenAsTriggers 屬性設定為 false,以撤銷此種行為。

對於 UpdatePanel 控制項內的 Timer 控制項,僅會在每次回傳完成時重新建立 JavaScript 計時元件。因此,在回傳傳回網頁之前,不會開始計算時間間隔。例如,如果 Interval 屬性設定為 60,000 毫秒 (60 秒),但需花 3 秒鐘才能完成回傳,則下一次回傳將會於前一次回傳後 63 秒後發生。

在 UpdatePanel 控制項外使用 Timer 控制項

當 Timer 控制項位於 UpdatePanel 控制項之外時,您必須明確地將 Timer 控制項定義為要更新之 UpdatePanel 控制項的觸發程序。

如果 Timer 控制項位於 UpdatePanel 控制項之外,則在回傳處理的過程中,JavaScript 計時元件會繼續執行。例如,如果 Interval 屬性設定為 60,000 毫秒 (60 秒),而回傳需花 3 秒鐘完成,則下一次回傳將於前一次回傳 60 秒後進行。使用者只需 57 秒就會在 UpdatePanel 控制項中看到重新整理後的內容。

您所設定的 Interval 屬性值必須能讓非同步回傳在開始下一個回傳之前完成。如果在前一個回傳的處理過程中就開始新的回傳,則會取消第一個回傳。

如需有關 Timer 控制項的詳細資訊,請參閱 MSDN Library 中的 Timer 控制項概觀 (英文)。

如需所有 Timer 控制項屬性的說明,請參閱 MSDN Library 中的 Timer 屬性 (英文)。

請參閱

概念

教學課程:如何定時重新整理 UpdatePanel 控制項

ASP.NET AJAX 控制項概觀

部分網頁呈現概觀

ScriptManager 控制項