1. 關於global.asax 總結經驗
介紹:global.asax 是asp.net 中的全局應用程序變量,其他介紹到msdn找吧!
//////////////////////////////////////////////////////////////////////////////////////////////////////////
<%@ Application Language="C#" %>
<script runat="server">
public static int run_time;
public int run_time2;
protected void Application_BeginRequest(Object sender, EventArgs e)
{
Application["StartTime"] = System.DateTime.Now;
}
protected void Application_EndRequest(Object sender, EventArgs e)
{
System.DateTime startTime = (System.DateTime)Application["StartTime"];
System.DateTime endTime = System.DateTime.Now;
System.TimeSpan ts = endTime - startTime;
run_time = ts.Milliseconds;
}
void Application_Start(object sender, EventArgs e)
{
// 在應用程序啟動時運行的代碼
}
void Application_End(object sender, EventArgs e)
{
// 在應用程序關閉時運行的代碼
}
void Application_Error(object sender, EventArgs e)
{
// 在出現未處理的錯誤時運行的代碼
}
void Session_Start(object sender, EventArgs e)
{
// 在新會話啟動時運行的代碼
}
void Session_End(object sender, EventArgs e)
{
// 在會話結束時運行的代碼。
// 注意: 只有在 Web.config 文件中的 sessionstate 模式設置為
// InProc 時,才會引發 Session_End 事件。如果會話模式設置為 StateServer
// 或 SQLServer,則不會引發該事件。
}
</script>
因為本人做一個網站搜索的功能,所以需要像baidu一樣,要獲得頁面執行時間,而我在網上查了下資料,最好要在服務器上獲得,說要使用asax文件,然後根據網上說的把代碼放到global.asax.cs中,可是發現本人的項目中沒有這個文件,於是添加新項,發現只有一個添加 global.asax全局應用程序,我把它方在了全局文件夾下,出來了.cs文件,但代碼復制過去後,運行沒發現有效果,郁悶了一下午,多方查找還是未發現這個神秘家伙)!與好友交流,說新建個項目就能得到,但我也沒見它的蹤跡,以致我以為我的vs壞了,後來,這位 “楓葉”(網名)好友提示:直接復制過去,果然效果出來,哈哈!
不多說了,我簡要說下,這個家伙的使用方法及注意郁悶事項!代碼來):
global.asax的代碼在上面
我們在serach.aspx
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class serach : System.Web.UI.Page
{
ASP.global_asax b = new ASP.global_asax();//定義b 對象,有點像類,有的說是接口
protected void Page_Load(object sender, EventArgs e)
Response.Write( "頁面執行時間"+ASP.global_asax.run_time+"毫秒");//調用類變量
Response.Write( "頁面執行時間"+b.run_time+"毫秒");//調用成員變量
}
}
總結:在 global.asax裡寫代碼或方法就像類一樣寫就可以了,不過調用的時候非常不穩定,有時vs不會自動點出來,也沒有任何提示,好像沒這個變量一樣!上述我們是調用的變量,調用方法也一樣的方法,當然第二個成員變量,肯定是0,所以我用的第一個靜態變量。
而且發現在vs中,只能添加一個asax文件,添加多了,也沒用!
我們可以不用管global.asax.cs這個神秘家伙!直接寫在asax裡就可以了
如果本人說的不對的地方,忘指正!
2. 關於用戶自定義控件ascx 的注意事項
本人在項目中使用用戶自定義控件,發現 在ascx裡,對js並不是很好的支持 如果我們在ascx裡,給圖片加上js效果,並且我們寫了個funcition函數,發現引用頁面如;index.aspx根本找不到這個對象,說明不支持這種js的定義,後經本人實驗,要把js放到引用目標頁面上就可以了,其實應用的原理有店鄉 <indel> 老式的asp引用,不過,ms的這個用戶自定義控件,更適用於功能行的控件,比如 投票系統,我們可以做成一個控件,來很好的使用它!