亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > AJAX > 正文

編寫輕量ajax組件第三篇實現

2024-09-01 08:28:03
字體:
來源:轉載
供稿:網友

通過之前的介紹,我們知道要執行頁面對象的方法,核心就是反射,是從請求獲取參數并執行指定方法的過程。實際上這和asp.net mvc框架的核心思想很類似,它會解析url,從中獲取controller和action名稱,然后激活controller對象,從請求獲取action參數并執action。在web form平臺上,我們把方法寫在.aspx.cs中,要實現的就是在頁面對象還未生成的情況下,執行指定的方法,然后返回結果。

  我們先看實現后幾個調用例子,這些功能也可以組合使用:      

 [AjaxMethod]    public void Test1(int index)    {      //簡單調用    }    [AjaxMethod]    public string Test2(Test test)    {      return "參數為一個Test實例";    }    [AjaxMethod(OutputCache = 20)]    public string Test3(int index)    {      return "輸出結果緩存20秒";    }    [AjaxMethod(ServerCache = 20)]    public string Test4()    {      return "在服務端緩存20秒";    }    [AjaxMethod(SessionState=SessionState.None)]    public void Test5()    {      //Session未被加載    }    [AjaxMethod(SessionState = SessionState.ReadOnly)]    public void Test6()    {      //Session只能讀不能寫    }    [AjaxMethod(SessionState = SessionState.ReadWrite)]    public void Test7()    {      //Session可以讀寫    }    [AjaxMethod(IsAsync = true)]    public void Test8()    {      //異步調用    }  

  前面我們已經熟悉基本的執行流程,現在直接進入主題。

Ajax約定

  通?,F在主流瀏覽器在使用ajax發送異步請求時,請求頭都會帶上一個:X-Requested-With:XMLHttpRequest 的標記。我們也可以直接通過這個標記來判斷是不是ajax請求,不過項目中可能有用其它的組件,為了不相互影響,我們加入一個自定義的請求頭。這里為:

internal static class AjaxConfig {  /// <summary>  /// 請求頭Ajax標記鍵  /// </summary>  public const string Key = "AjaxFlag";  /// <summary>  /// 請求頭Ajax標記值  /// </summary>  public const string Value = "XHR";  /// <summary>  /// 請求頭Ajax方法標記  /// </summary>  public const string MethodName = ""; }

  意思是如果http 的請求頭包含一個 AjaxFlag : XHR,就是我們要處理的。另外http header的MethodName就表示我們要執行的方法的名稱。

AjaxMethodAttribute標記屬性

  標記屬性是給反射用的,在這里定義我們需要的一些功能。我們希望有:

  1. 可以配置Session狀態

  2. 支持異步Handler

  3. 支持Get緩存

  4. 支持服務端緩存

  定義如下,用AttributeUsag標記該標記只能用于方法上。

  /// <summary>  /// ajax方法標記屬性  /// </summary>  [AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = false)]  public class AjaxMethodAttribute : Attribute  {    public AjaxMethodAttribute()    {          }    private SessionState _sessionState = SessionState.None;    private int _outputCache = 0;    private int _serverCache = 0;    private ContentType _contentType = ContentType.Plain;    private bool _isUseAsync = false;    /// <summary>    /// session狀態    /// </summary>    public SessionState SessionState     {      get { return _sessionState; }      set { _sessionState = value; }    }    /// <summary>    /// 客戶端緩存時間,以秒為單位。該標記只對get請求有效    /// </summary>    public int OutputCache     {      get { return _outputCache; }      set { _outputCache = value; }    }    /// <summary>    /// 服務端緩存時間,以秒為單位    /// </summary>    public int ServerCache     {      get { return _serverCache; }      set { _serverCache = value; }    }        /// <summary>    /// 輸出類型(默認為text/plain)    /// </summary>    public ContentType ContentType     {      get { return _contentType; }      set { _contentType = value; }    }    /// <summary>    /// 使用啟用異步處理    /// </summary>    public bool IsAsync     {      get { return _isUseAsync; }      set { _isUseAsync = value; }    }  }  /// <summary>  /// Session狀態  /// </summary>  public enum SessionState  {    None,    ReadOnly,    ReadWrite      }  /// <summary>  /// 輸出內容類型  /// </summary>  public enum ContentType  {    Plain,    Html,    XML,    Javascript,    JSON  }            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩欧美综合在线视频| 亚洲成人黄色在线| 日韩精品福利网站| 欧美美女18p| 国产91热爆ts人妖在线| 亚洲午夜国产成人av电影男同| 色阁综合伊人av| 国产一区二区三区毛片| 亚洲综合视频1区| 日产日韩在线亚洲欧美| 亚洲国产高清高潮精品美女| 亚洲free嫩bbb| 亚洲福利视频在线| 国产精品黄视频| 欧美亚洲视频在线看网址| 久久久久久久电影一区| 色偷偷av一区二区三区乱| 亚洲欧美日韩精品久久亚洲区| 亚洲成人激情在线观看| 国产mv久久久| 成人精品久久av网站| 久久亚洲私人国产精品va| 亚洲区在线播放| 亚洲肉体裸体xxxx137| 91香蕉亚洲精品| 亚洲精品美女久久久| 日韩黄色在线免费观看| 亚洲男女自偷自拍图片另类| 国产99久久精品一区二区永久免费| 亚洲欧美日韩一区二区三区在线| 国产综合在线看| 91精品视频网站| 国产精品午夜视频| 97国产精品人人爽人人做| 欧美高清视频一区二区| 色婷婷久久一区二区| 51精品国产黑色丝袜高跟鞋| 国产精品久久不能| 色综合久久久久久中文网| 国产精品美女无圣光视频| 亚洲第一网站免费视频| 日韩高清中文字幕| 尤物yw午夜国产精品视频| 亚洲国产精品美女| 国产视频综合在线| 国产精品一久久香蕉国产线看观看| 国产欧美va欧美va香蕉在线| 亚洲香蕉av在线一区二区三区| 韩国日本不卡在线| 91免费版网站入口| 国产成人精品av在线| 正在播放国产一区| 国产一区二区久久精品| 日韩中文字幕国产精品| 亚洲欧美日本伦理| 中文字幕日韩av| 国产精品国内视频| 久久999免费视频| 色小说视频一区| 国产欧美日韩最新| 国产在线精品自拍| 欧美日韩高清在线观看| 国产欧美日韩专区发布| 久久精品在线播放| 亚洲自拍偷拍第一页| 国产成人精品久久久| 日韩一区二区三区在线播放| 欧美最近摘花xxxx摘花| 日韩美女中文字幕| 欧美日产国产成人免费图片| 91亚洲国产成人精品性色| 欧美性做爰毛片| 成人av在线亚洲| www.欧美精品一二三区| 亚洲欧洲美洲在线综合| 日韩一级裸体免费视频| 欧美成人精品xxx| 国产视频久久久久| 亚洲欧美日韩第一区| 国自产精品手机在线观看视频| 国产成人精品在线观看| 亚洲男人天堂网| 国产日韩欧美电影在线观看| 2019中文字幕免费视频| 91高潮精品免费porn| 国产日韩换脸av一区在线观看| 国产精品99久久久久久白浆小说| 精品久久久久久电影| 亚洲国产精品热久久| 色yeye香蕉凹凸一区二区av| 九色精品美女在线| 日韩美女在线看| 2025国产精品视频| 亚洲自拍偷拍一区| 国产亚洲欧美日韩美女| 九色精品美女在线| 综合国产在线观看| 亚洲精品欧美一区二区三区| 日韩欧美国产激情| 日韩亚洲国产中文字幕| 久久国产精品首页| 国产成人精品综合| 成人黄色片在线| 欧美精品福利在线| 秋霞成人午夜鲁丝一区二区三区| 亚洲网站在线看| 亚洲午夜久久久影院| 国产亚洲精品美女久久久| 亚洲一区二区自拍| 日本久久中文字幕| 国产亚洲精品美女久久久| 国产美女扒开尿口久久久| 国产人妖伪娘一区91| 日韩在线观看高清| 欧美国产精品人人做人人爱| 亚洲理论在线a中文字幕| 久久精品99国产精品酒店日本| 欧美精品一区二区免费| 韩国视频理论视频久久| 欧美激情va永久在线播放| 亚洲美女视频网站| 久久777国产线看观看精品| 欧美日韩美女视频| 亚洲欧洲免费视频| 久久成年人视频| 欧美日韩在线影院| 亚洲一区二区在线| 成人黄色大片在线免费观看| 91九色综合久久| 成人免费视频网| 精品国内自产拍在线观看| 国产成人免费av| 亚洲石原莉奈一区二区在线观看| 欧美国产第一页| 日韩h在线观看| 亚洲国产精品va| 国产精品久久久久免费a∨| 亚洲精品suv精品一区二区| 精品视频中文字幕| 九色精品免费永久在线| 国产精品va在线| 日本成人在线视频网址| 欧美精品久久久久久久| 国产又爽又黄的激情精品视频| 在线观看视频99| 欧美成人激情视频| 国产精品狼人色视频一区| 国产精品成人品| 欧美巨猛xxxx猛交黑人97人| 久久久久亚洲精品成人网小说| 亚洲欧美精品一区| 欧美在线免费视频| 中文字幕欧美日韩精品| 欧美国产日韩一区| 亚洲一区二区黄| 欧美极品美女视频网站在线观看免费| 欧美精品在线网站| 中文字幕欧美精品在线| 欧美亚洲国产精品| 伊人久久久久久久久久| 欧美人与性动交a欧美精品| 91久久精品日日躁夜夜躁国产| 欧美贵妇videos办公室| 亚洲精品网站在线播放gif|