2010-07-30 59 views
2

在x秒後,在頁面加載後,我需要在後面的代碼中執行一個方法。我無法將這個邏輯轉移到JS中。在代碼後x秒後觸發一個方法 - ASP.NET/C#

我需要爲此使用委託/事件嗎?任何人都可以給我一個例子(最好用代碼片段)?

+2

嘿鮑勃,爲什麼不接受你的一些其他問題的答案? =) – 2010-07-30 20:07:23

+0

其實,看看他的賬戶。看起來他接受了很多答案? – Caladain 2010-07-30 20:17:33

+0

您可以在這裏提供更多的上下文,例如你在X秒後執行什麼? – stucampbell 2010-07-30 20:31:44

回答

3

在JS中放置一個計數X秒的計數器。一旦達到它的標記,是否通過AJAX發送消息回服務器,服務器執行該方法。

這是關於確保這些秒的計數精確到當頁面完成加載時唯一的方法。如果您不關心準確性,只需讓服務器在發送頁面x秒後啓動該方法即可。

+0

您可以詳細說明「只需在服務器發送頁面後x秒後啓動該方法」。 – user300981 2010-07-30 20:10:01

+0

那麼,當客戶端發出請求時,您的Web服務器會發送頁面。我不會推薦它,但是我已經看到很多服務器端應用程序監視一個頁面被一個請求發送出去,然後在幾秒鐘後做一些事情。這是klugy。你最好打賭就是使用AJAX並向服務器發送一條消息。這將爲你帶來你想要的東西。 – Caladain 2010-07-30 20:15:58

+0

我的網站目前不使用AJAX,如果絕對沒有必要,我不想更新制作網站。我不需要準確的時間,需要在45秒的頁面加載後關閉。 – user300981 2010-07-30 20:34:09

2

您的最佳解決方案是使用JavaScript來導致回發,或者在X秒過後發送AJAX請求到服務器。

由於ASP.NET頁面的頁面生命週期,你不能直接從代碼隱藏中完成。您可以在ASP.NET Page Lifecycle上看到更多信息。

我會放一些JavaScript,它使用「SetTimeout」來觸發一個JS方法調用,它可以執行Ajax請求,也可以強制回發,具體取決於你在做什麼。

編輯

基於你把意見後我會建議修改的方法的附加信息。如果你正在做的是啓動另一個窗口,並且你想延遲這個邏輯。

而不是直接調用window.open或不管你在做什麼。只需將該代碼放入將在前面提到的使用「SetTimeout」方法調用的代碼中即可。根本不需要涉及服務器端。