程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 關於global.asax 總結經驗

關於global.asax 總結經驗

編輯:C#入門知識

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的這個用戶自定義控件,更適用於功能行的控件,比如 投票系統,我們可以做成一個控件,來很好的使用它!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved