2009-06-29 22 views
0

我想在頁面底部顯示一個簡單的「內置x.yz秒」文本,以便輕鬆檢查各種選項。 (有些頁面是用「普通」用戶在前一頁中輸入的參數構建的,他們也希望看到他的決定的結果)ASP.NET MVC和WebForms中的頁面構造時間

我知道我可以在asp.net中使用跟蹤,但它不是很用戶友好,我擔心它對性能不是很好。

您認爲此http://www.aspnetzone.de/blogs/peterbucher/archive/2008/03/16/requestdauer-mit-einem-httpmodule-und-response-filter-ausgeben.aspx(httpmodule,德語網頁)是一個很好的解決方案嗎?

哦,因爲我在幾個項目的工作,現在,我想這樣做對asp.net的MVC頁面和web表單:)

謝謝!

回答

0

絕對不要在生產代碼中使用痕跡!

可以閱讀德語,但我可能會實現這一點,只需將當前日期時間存儲在頁面的構造函數中,然後打印當前時間與OnPreRender事件中存儲時間之間的時間差,顯示時間 - OnPreRender事件是頁面生命週期中最後一點,它可以改變頁面的渲染內容(不需要做某種後期處理)

只要你不喜歡在標籤的OnPreRender事件之後不做任何重大處理。

1

HttpContext對象包含「start-of-http-request」的時間戳。

我想這通常會足夠好,除非它對你重要的是減去等待可用線程變得可用的任何時間。

因此,建立時間會

DateTime.Now.Subtract(HttpContext.Current.Timestamp).TotalMilliseconds 

如果你想最精確的時間,你可以手動存儲的開始時間在Global.asax中

void Application_PreRequestHandlerExecute(object sender, EventArgs e) 
    { 
     HttpContext.Current.Session.Add("LastPageStart", DateTime.Now); 
    } 

,並從結束時間減去它

Application_EndRequest 

把它記錄到log4net或者其他的。

當然,如果您需要在頁面的底部顯示它,而不是簡單地讓信息監控健康狀況,那麼您可能只需在頁面上手動減去它即可。