在 ASP.NET WebForms 中拖入 <asp:Timer> 並設定 Interval、OnTick,但伺服器端事件從未觸發。
ASP.NET WebForms 是「請求-回應」模型:頁面生命週期結束後,伺服器端物件即銷毀,無法在背景持續運行計時器。Timer 控制項實際上是透過 JavaScript 定時發起 PostBack,若前端腳本錯誤或 UpdatePanel 設定不當,將不會觸發。
<meta http-equiv="refresh" content="30"> <!-- 30 秒自動整頁重新載入 -->
<script>
setInterval(function() {
$.post("Handler.ashx", function(data) {
$("#targetDiv").html(data);
});
}, 30000); // 30 秒
</script>
伺服器主動推送更新至客戶端,避免輪詢開銷。
ScriptManager 存在且 EnablePartialRendering="true"。UpdatePanel 內,並設定 Triggers。